8.5.6 Оптимизация запросов InnoDB
Для настройки запросов к таблицам InnoDB создайте соответствующий набор индексов для каждой таблицы. Подробности см. в разделе 8.3.1, «Как MySQL использует индексы». Следуйте этим рекомендациям для InnoDB индексов:
Поскольку каждая таблица
InnoDBимеет (независимо от того, запрашивается ли она), укажите набор столбцов первичного ключа для каждой таблицы, столбцы, которые используются в наиболее важных и критически важных запросах.Не указывайте слишком много или слишком длинных столбцов в первичном ключе, потому что эти значения столбцов дублируются в каждом вторичном индексе. Когда индекс содержит ненужные данные, ввод-вывод для чтения этих данных и память для кэширования их снижают производительность и масштабируемость сервера.
Не создавайте отдельный индекс для каждого столбца, поскольку каждый запрос может использовать только один индекс. Индексы на редко используемых столбцах или столбцах с небольшим количеством различных значений могут не быть полезны для каких-либо запросов. Если у вас много запросов к одной и той же таблице, тестируя различные комбинации столбцов, старайтесь создать небольшое количество индексов, а не большое количество одностолбцовых индексов. Если индекс содержит все столбцы, необходимые для набора результатов (известный как составной индекс), запрос может вообще избежать чтения данных из таблицы.
Если индексируемый столбец не может содержать каких-либо значений
NULL, объявите его какNOT NULLпри создании таблицы. Оптимизатор может лучше определить, какой индекс наиболее эффективен для запроса, когда он знает, содержит ли каждый столбец значенияNULL.Вы можете оптимизировать транзакции отдельных запросов для таблиц
InnoDB, используя метод, описанный в разделе 8.5.3, «Оптимизация транзакций только для чтения InnoDB».
© 2025 Oracle
Licensed under the GPLv2 License.