13.7.6.5 Оператор LOAD INDEX INTO CACHE
LOAD INDEX INTO CACHE
tbl_index_list [, tbl_index_list] ...
tbl_index_list:
tbl_name
[PARTITION (partition_list)]
[{INDEX|KEY} (index_name[, index_name] ...)]
[IGNORE LEAVES]
partition_list: {
partition_name[, partition_name] ...
| ALL
}
Оператор LOAD INDEX INTO
CACHE предварительно загружает индекс таблицы в кэш ключей, которому он был назначен явным оператором CACHE INDEX, или в кэш ключей по умолчанию в противном случае.
LOAD INDEX INTO
CACHE применяется только к MyISAM таблицам, включая разделяемые MyISAM таблицы. Кроме того, индексы разделяемых таблиц могут быть загружены для одного, нескольких или всех разделов.
Модификатор IGNORE LEAVES приводит к предварительной загрузке только блоков для нелистовых узлов индекса.
IGNORE LEAVES также поддерживается для разделяемых MyISAM таблиц.
Следующий оператор загружает узлы (блоки индекса) индексов для таблиц 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 |
+---------+--------------+----------+----------+
Этот оператор загружает все блоки индекса из t1. Он загружает только блоки для нелистовых узлов из t2.
Синтаксис LOAD
INDEX INTO CACHE позволяет указать, что в кэш должны быть загружены только определенные индексы из таблицы. Однако реализация загружает в кэш все индексы таблицы, поэтому нет причины указывать что-либо помимо имени таблицы.
Возможна предварительная загрузка индексов определенных разделов разделяемых MyISAM таблиц. Например, из следующих 2 операторов, первый загружает индексы для раздела p0 разделяемой таблицы pt, а второй загружает индексы для разделов p1 и p3 той же таблицы:
LOAD INDEX INTO CACHE pt PARTITION (p0);
LOAD INDEX INTO CACHE pt PARTITION (p1, p3);
Для предварительной загрузки индексов всех разделов в таблице pt можно использовать любой из следующих двух операторов:
LOAD INDEX INTO CACHE pt PARTITION (ALL);
LOAD INDEX INTO CACHE pt;
Эти два оператора эквивалентны, и выполнение любого из них имеет точно такой же эффект. Другими словами, если вы хотите предварительно загрузить индексы всех разделов разделяемой таблицы, то фрагмент PARTITION (ALL) является необязательным.
При предварительной загрузке индексов для нескольких разделов разделы не должны быть смежными, и их имена не нужно перечислять в определённом порядке.
LOAD INDEX INTO
CACHE ... IGNORE LEAVES завершается неудачей, если у всех индексов таблицы одинаковый размер блока. Для определения размеров блоков индекса для таблицы используйте myisamchk -dv и проверьте столбец Blocksize.
© 2025 Oracle
Licensed under the GPLv2 License.