- NoSql-хранилище
Mysql предоставляет функции хранения NoSQL с версии 5.7, и эта часть была изменена в 8.0, но на практике это используется редко.
2. Скрыть индекс Функция скрытого индекса очень полезна для отладки производительности. В версии 8.0 индексы можно скрывать и отображать. Когда индекс скрыт, он не будет использоваться оптимизатором запросов.
То есть вы можете скрыть индекс, а затем наблюдать за воздействием на базу данных. Если производительность падает, это означает, что индекс действителен, поэтому его можно «восстановить и отображать»; если производительность базы данных не меняется , это означает, что индекс слишком много да, он может быть удален
синтаксис для скрытия индекса
ALTER TABLE t ALTER INDEX i INVISIBLE;
Синтаксис восстановления индекса для отображения:
ALTER TABLE t ALTER INDEX i VISIBLE;
Когда индекс скрыт, мы можем видеть из сводки выходных данных команды show index, что значение атрибута visible индекса равно No.
**Примечание.** Когда индекс скрыт, его содержимое по-прежнему обновляется в режиме реального времени, как и в обычном индексе. Сама эта функция специально используется для оптимизации отладки. Если вы скрываете индекс на долгое время, лучше его убить. это, т.к. наличие индекса влияет на функциональность вставки\обновления и удаления данных
3. Установите постоянство Настройки MySQL можно изменить во время выполнения с помощью команды SET GLOBAL, но это изменение вступит в силу только временно, и база данных будет считана из файла конфигурации при следующем запуске. MySQL 8 добавляет команду SET PERSIST, например:
SET PERSIST max_connections = 500;
MySQL сохранит конфигурацию команды в каталог данныхmysqld-auto.cnfфайл, файл будет прочитан при следующем запуске, и файл конфигурации по умолчанию будет перезаписан содержащейся в нем конфигурацией.
4. Кодировка UTF-8 Начиная с MySQL 8 кодировка базы данных по умолчанию будет изменена на utf8mb4, которая включает все символы эмодзи. На протяжении многих лет мы использовали MySQL, чтобы быть осторожными в кодировании, опасаясь забыть изменить латиницу по умолчанию и вызвать искажение символов. Не беспокойтесь с этого момента.
5. Общие табличные выражения В сложных запросах используются встроенные таблицы, например:
SELECT t1.*, t2.* FROM
(SELECT col1 FROM table1) t1,
(SELECT col2 FROM table2) t2;
И с CTE мы можем написать:
WITH
t1 AS (SELECT col1 FROM table1),
t2 AS (SELECT col2 FROM table2)
SELECT t1.*, t2.*
FROM t1, t2;
Таким образом, кажется, что уровни и области более четкие, и становится яснее знать, какую часть изменить при изменении. Эта функция очень полезна во многих сценариях создания отчетов, а также является очень важной функцией оптимизации MySQL.
1.235 Функции окна (функции окна)
Одной из самых обсуждаемых особенностей MySQL является отсутствиеrank() 函数, когда вам нужно достичь ранжирования в запросе, вы должны написать переменную @. Но начиная с версии 8.0 в MySQL была добавлена концепция оконной функции, которую можно использовать для реализации нескольких новых методов запросов.
Оконная функция немного похожа наSUM(),COUNT()Подобные функции агрегирования, но вместо объединения нескольких строк результатов запроса в один, он помещает результаты обратно в несколько строк. То есть оконная функция не требуетсяGROUP BYиз.
Предположим, у нас есть таблица «Количество учеников в классе»:
Если вы хотите ранжировать размер класса от маленького к большому, вы можете использовать оконную функцию следующим образом:
Объяснение: Здесь создается окно с именем w, и предусмотрено, что оно сортирует поле stu_count, а затем выполняет метод rank() для w в предложении select и выводит результат в виде поля rank. Эта функция также является новой функцией Oracle11g и также играет важную роль в оптимизации.