- 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 и также играет важную роль в оптимизации.