Статья была переслана из профессионального сообщества разработчиков laravel. Оригинальная ссылка: https://learnku.com/laravel/t
Ниже будут показаны эти функции в приоритете сообщества MySQL от высокого до низкого:
ТОП-10
- Хранилище документов MySQL
- Кодировка utf8mb4 по умолчанию
- Улучшение JSON
- CTEs (общие табличные выражения)
- Функция окна
- нисходящий индекс
- Улучшенная модель потребления оптимизатора
- Компоненты сервера MySQL
- Совершенствование ГИС
- Не ждите и не пропускайте заблокированные опции для движка 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, которые должны удовлетворить разработчиков?