8.4.2.2 Оптимизация для типов символов и строк
Для столбцов символов и строк следуйте этим рекомендациям:
Используйте двоичный порядок сортировки для быстрых операций сравнения и сортировки, когда вам не нужны функции сортировки, специфичные для языка. Вы можете использовать оператор
BINARYдля использования двоичной сортировки в конкретном запросе.При сравнении значений из разных столбцов объявляйте эти столбцы с одинаковым набором символов и сортировкой, где это возможно, чтобы избежать преобразований строк во время выполнения запроса.
Для значений столбцов размером менее 8 КБ используйте двоичный
VARCHARвместоBLOB. КлаузыGROUP BYиORDER BYмогут генерировать временные таблицы, и эти временные таблицы могут использовать движок храненияMEMORY, если исходная таблица не содержит столбцовBLOB.Если таблица содержит строковые столбцы, такие как имя и адрес, но многие запросы не извлекают эти столбцы, рассмотрите возможность разделения строковых столбцов на отдельную таблицу и использование запросов с объединением с внешним ключом при необходимости. Когда MySQL извлекает любое значение из строки, он считывает блок данных, содержащий все столбцы этой строки (и, возможно, другие смежные строки). Поддержание каждой строки небольшого размера, с использованием только наиболее часто используемых столбцов, позволяет поместить больше строк в каждый блок данных. Такие компактные таблицы уменьшают ввод-вывод на диск и использование памяти для общих запросов.
Если вы используете случайное значение в качестве первичного ключа в таблице
InnoDB, при возможности добавьте его префикс возрастающим значением, таким как текущая дата и время. Если последовательные первичные значения физически хранятся рядом друг с другом,InnoDBможет быстрее вставлять и извлекать их.См. Раздел 8.4.2.1 «Оптимизация для числовых данных» для объяснения, почему числовой столбец обычно предпочтительнее эквивалентного строкового столбца.
© 2025 Oracle
Licensed under the GPLv2 License.