Spec-Zone.ru › MySQL 8.4

10.4.2.2 Оптимизация для типов символов и строк

Для столбцов символов и строк следуйте этим рекомендациям:

  • Используйте бинарный порядок сортировки для быстрых операций сравнения и сортировки, когда вам не нужны возможности сортировки, зависящие от языка. Вы можете использовать оператор BINARY, чтобы использовать бинарную сортировку в рамках конкретного запроса.

  • При сравнении значений из разных столбцов, объявляйте эти столбцы с одинаковым набором символов и порядком сортировки, где это возможно, чтобы избежать преобразований строк при выполнении запроса.

  • Для значений столбцов размером меньше 8 КБ используйте бинарное VARCHAR вместо BLOB. Операторы GROUP BY и ORDER BY могут генерировать временные таблицы, и эти временные таблицы могут использовать движок хранения MEMORY, если исходная таблица не содержит столбцов BLOB.

  • Если таблица содержит строковые столбцы, такие как имя и адрес, но многие запросы не извлекают эти столбцы, рассмотрите возможность разделения строковых столбцов на отдельную таблицу и использование запросов с объединением с внешним ключом при необходимости. Когда MySQL извлекает любое значение из строки, он считывает блок данных, содержащий все столбцы этой строки (и, возможно, другие смежные строки). Поддержание каждой строки небольшого размера, содержащей только наиболее часто используемые столбцы, позволяет поместить больше строк в каждый блок данных. Такие компактные таблицы уменьшают ввод/вывод с диска и использование памяти для общих запросов.

  • При использовании случайно сгенерированного значения в качестве первичного ключа в таблице InnoDB, если это возможно, добавьте его с возрастающим значением, например, текущей датой и временем. Когда последовательные первичные значения физически хранятся рядом друг с другом, InnoDB может быстрее вставлять и извлекать их.

  • См. Раздел 10.4.2.1, «Оптимизация для числовых данных» для объяснений того, почему числовой столбец обычно предпочтительнее эквивалентного строкового столбца.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/optimize-character.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API