Spec-Zone.ru › MySQL 9.2

15.7.8.5 Выгрузка индекса в кэш

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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/load-index.html

Spec-Zone.ru

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