8.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.