Производительность MySQL 8.0 увеличилась в два раза

MySQL 8.0 является очень важным обновлением по сравнению с MySQL 5.7, которая напомним была выпущена 21 октября 2015 года. Производительность MySQL 8.0 в два раза быстрее, чем в MySQL 5.7.
[web-zones.ru]-original.jpg
Оконные функции
Во многих других реализациях языка SQL поддерживаются оконные функции, позволяющие выполнять агрегированные вычисления над множеством строк, сохраняя при этом в результатах запроса доступ к каждой отдельно взятой строке. Конечно, в MySQL такую задачу можно решить и без поддержки оконных функций, но это будет медленно и неудобно. Разработчики добавили в MySQL 8.0 оконные функции, реализованные с помощью стандартной конструкции SQL OVER. Аналогичным образом эти функции представлены и в конкурирующих продуктах, в том числе в PostgreSQL.

Еще одним новшеством стали рекурсивные выражения, позволяющие выполнять рекурсивные операции как часть запроса, не прибегая к курсорам и другим способам, которые приводят к снижению производительности.

Улучшение работы с документами и JSON
Поддержка JSON появилась в версии MySQL 5.7, сделав MySQL конкурентоспособной в соперничестве с СУБД NoSQL, которые работали с JSON изначально. В MySQL 8.0 поддержка JSON была расширена: производительность выросла, появились функции, позволяющие извлекать из запроса JSON диапазоны (как это сделано в запросе типа top N), а также новые агрегированные функции, объединяющие в запросе структурированные данные MySQL и полуструктурированные JSON.

С поддержкой JSON связаны и новые возможности хранения документов. Операции чтения и записи в хранилище документов MySQL согласованы в рамках транзакции, что позволяет «откатить» операции и отменить изменения в данных JSON. Данные о местоположении, хранившиеся в открытом формате GeoJSON, можно индексировать, благодаря чему поиск осуществляется в том числе и по критерию близости расположения.

Среди других изменений в MySQL 8.0 отметим следующие.
  • Расширение возможностей управления заблокированными строками с помощью ключевых слов SKIP LOCKED и NOWAIT. Конструкция SKIP LOCKED позволяет пропускать во время выполнения операции заблокированные строки; опция NOWAIT при обнаружении заблокированной строки приводит к выдаче сообщения об ошибке.
  • MySQL автоматически перераспределяет общий объем доступной памяти, оптимизируя использование развернутых виртуальных машин.
  • Индексы могут быть исключены из оптимизатора запросов вручную с помощью конструкции invisible index. Таким образом, в случае необходимости пользователь имеет возможность самостоятельно определить, стоит ли задействовать тот или иной индекс.
 
Назад
Верх Низ