Рубрики
Uncategorized

Новые функции MySQL 8.0, которые должны знать 10 разработчиков

Автор оригинала: David Wong.

Статья была переслана из профессионального сообщества разработчиков laravel. Оригинальная ссылка: https://learnku.com/laravel/t

Ниже будут показаны эти функции в приоритете сообщества MySQL от высокого до низкого:

ТОП-10

  1. Хранилище документов MySQL
  2. Кодировка utf8mb4 по умолчанию
  3. Улучшение JSON
  4. CTEs (общие табличные выражения)
  5. Функция окна
  6. нисходящий индекс
  7. Улучшенная модель потребления оптимизатора
  8. Компоненты сервера MySQL
  9. Совершенствование ГИС
  10. Не ждите и не пропускайте заблокированные опции для движка InnoDB

1. Хранилище документов MySQL

Это самая ожидаемая и популярная функция MySQL 8.0… И ему очень легко это понять.

Я очень взволнован хранением документов MySQL. Я показывал его по всему миру в течение почти года и получил много хороших отзывов, почему MySQL DS настолько хорош, потому что с помощью одного решения вы можете обрабатывать SQL и NoSQL. Вы также можете объединить преимущества двух языков.Вы можете выполнять команды crud для одних и тех же данных, а также выполнять более сложные запросы в SQL, такие как подключение нескольких таблиц и/или наборов.

В то же время серверная часть является хорошо известным мощным движком InnoDB, а механизм хранения документов MySQL полностью соответствует стандарту acid, потому что все это в mysql, вы можете извлечь выгоду из знакомого контента или преобразовать его в хранилище документов: репликация, схема производительности

2. Набор символов по умолчанию-utf8mb4

С MySQL 8.0, конечно, мы обращаем внимание на современные веб-приложения… Это относится к мобильному концу, когда мы говорим о мобильных телефонах, смайликах и большом количестве наборов символов и классификаций, которые должны сосуществовать.

Вот почему мы решили изменить набор символов по умолчанию с латиницы 1 на utf8mb4 MySQL поддерживает новейшую классификацию Unicode 9.0, основанную на дуэте, классификации с учетом акцента и регистра, японском, русском языках

3. Улучшение JSON

MySQL вносит некоторые новые изменения, связанные с JSON:

  • Недавно добавлено ->> Выражение, действие, равное JSON_UNQUOTE(JSON_EXTRACT())
  • Новая агрегатная функция JSON_ARRAY AGG() Сумма JSON_OBJECTS()
  • Недавно добавлено JSON_PRETTY()
  • Новые служебные функции JSON, такие как JSON_STORAGE_SIZE () , JSON_STORAGE_FREE()

Одной из наиболее важных оптимизаций JSON в MySQL 8.0 является предоставление функции JSON_TABLE () . Эта функция принимает данные в формате JSON и преобразует их в реляционную таблицу данных. Можно указать формат как полей, так и данных. Вы можете быть правы JSON_TABLE() Используйте обычные SQL-запросы для будущих данных, таких как объединения, агрегированные запросы и т.д.. Вы можете проверить блог @ Stoker и, конечно, прочитать официальные документы.

Следует отметить, что это повлияет не только на использование разработчиками, но и на производительность выполнения MySQL. В старой системе при обновлении JSON система удалит старые данные и запишет новые данные. В новой системе, если вы хотите обновить поле в данных JSON, правильный способ-напрямую обновить поле в JSON, чтобы повысить эффективность выполнения, а также повысить производительность репликации (репликации) между ведущим и подчиненным устройством базы данных.

4. Общее табличное выражение (CTEs)

MySQL 8.0 добавляет функцию CTEs. CTE-это именованный временный результирующий набор, который существует только в области выполнения одной инструкции SQL. Это может быть самостоятельная ссылка или несколько ссылок в одном запросе.

5. Метод статистического анализа

Для каждой строки в запросе метод статистического анализа использует строку, связанную с этой строкой, для выполнения вычисления.Это похоже на метод группирования по, но он сохраняет строки, а не сворачивает их.

Ниже приведен список методов статистического анализа, реализованных в настоящее время в MySQL 8.0.4:

CUME_DIST() Совокупное присвоенное значение
DENSE_RANK() Ранг текущей строки в разделе, без интервала
FIRST_VALUE() Значение параметра первой строки оконной рамы
ОТСТАВАНИЕ() Значение параметра указанной строки в разделе за текущей строкой
ПОСЛЕДНЕЕ ЗНАЧЕНИЕ() Значение параметра первой строки оконной рамы
СВИНЕЦ() Значение параметра текущей строки в разделе
ЗНАЧЕНИЕ NTH_() Значения параметров из полотна оконной рамы
NTILE() Номер ячейки текущей строки в разделе
PERCENT_RANK() Процентное значение оценки
РАНГ() Ранг текущей строки в разделе, включая интервал
НОМЕР СТРОКИ() Текущее количество строк в его разделе

6. Нисходящий индекс

До MySQL 8.0 этот флаг игнорировался, когда диск использовался в определениях индексов.Теперь значения ключей хранятся в порядке убывания. Ранее индексы могли сканироваться в обратном порядке, но это повлияло бы на производительность. Вы можете сканировать индекс в обратном порядке, что более эффективно.

7. Улучшенная модель накладных расходов оптимизатора

Новая модель затрат оптимизатора теперь учитывает данные кэша памяти и данные жесткого диска. Рекомендуется прочитать сообщение в блоге Штайна

8. Серверный модуль MySQL

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

9. Совершенствование ГИС

MySQL 8.0 имеет очень высокий уровень поддержки ГИС (Географической информационной системы), и его функция непосредственно следует за PostgreSQL.

Некоторые примеры:

  • Ось будет иметь единицы измерения
  • Географическая система координат
  • Ось не будет смещена
  • Ось поддерживает сортировку
  • Корреляция направления опоры оси

10. Двигатель InnoDB без ожидания и пропуска заблокирован

Движок InnoDB MySQL 8.0 теперь может лучше обрабатывать споры по горячей линии Поддержка InnoDB БЕЗ ОЖИДАНИЯ И ` пропустить\ ЗАБЛОКИРОВАНО Параметры и ВЫБРАТЬ … ДЛЯ\ ПОДЕЛИТЬСЯ и ВЫБРАТЬ … ДЛЯ\ ОБНОВЛЕНИЯ Заблокируйте инструкцию read. НЕТ ОЖИДАНИЯ Инструкция возвращается немедленно, когда строка запроса заблокирована другой транзакцией. Пропустить заблокированную “удаляет заблокированную строку из результирующего набора См. Раздел Использование nowait и пропустить заблокированную для блокировки одновременного чтения

Конечно, список хороших функций MySQL 8.0 на этом не закончится, например, регулярное выражение ‘также является интересной функцией, которая только что появилась в [8.0.4] (https://mysqlserverteam.com/t…) Новая функция SQL GROUPING () , IPv6 и UUID управляют новым бизнесом, больше советов по оптимизатору

Я надеюсь, что это даст вам хороший обзор того, какие запросы стимулируют инновации MySQL. В следующей статье будут представлены функции MySQL 8.0, которые должны удовлетворить разработчиков?