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.