Spec-Zone.ru › MySQL 8.4

10.10.2.4 Предварительная загрузка индекса

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

Без предварительной загрузки блоки всё равно помещаются в кэш ключей по мере необходимости запросами. Хотя блоки остаются в кэше, поскольку для всех них достаточно буферов, они извлекаются с диска в случайном порядке, а не последовательно.

Для предварительной загрузки индекса в кэш используйте оператор LOAD INDEX INTO CACHE. Например, следующий оператор предварительно загружает узлы (блоки индекса) индексов таблиц t1 и t2:

mysql> LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVES;
+---------+--------------+----------+----------+
| Table   | Op           | Msg_type | Msg_text |
+---------+--------------+----------+----------+
| test.t1 | preload_keys | status   | OK       |
| test.t2 | preload_keys | status   | OK       |
+---------+--------------+----------+----------+

Модификатор IGNORE LEAVES вызывает предварительную загрузку только блоков для узлов индекса, не являющихся листовыми. Таким образом, показанный оператор предварительно загружает все блоки индекса из t1, но только блоки для узлов, не являющихся листовыми, из t2.

Если индексу был назначен кэш ключей с помощью оператора CACHE INDEX, предварительная загрузка помещает блоки индекса в этот кэш. В противном случае индекс загружается в стандартный кэш ключей.

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

Spec-Zone.ru

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