Spec-Zone .ru
спецификации, руководства, описания, API

13.7.6.5. LOAD INDEX INTOCACHE Синтаксис

LOAD INDEX INTO CACHE  tbl_index_list [, tbl_index_list] ...tbl_index_list:  tbl_name    [PARTITION (partition_list | ALL)]    [[INDEX|KEY] (index_name[, index_name] ...)]    [IGNORE LEAVES]partition_list:    partition_name[, partition_name][, ...]

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

LOAD INDEX INTO CACHE используется только для MyISAM таблицы. В MySQL 5.7 это также поддерживается для разделенного 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 позволяет Вам определить, что только определенный индексирует от таблицы, должен быть предварительно загружен. Текущие предварительные нагрузки реализации, которые вся таблица индексирует в кэш, таким образом нет никакой причины определить что-либо кроме имени таблицы.

В MySQL 5.7.1, gtid_next должен быть установлен в AUTOMATIC прежде, чем сделать это заявление. Это ограничение не применяется в MySQL 5.7.2 или позже. (Ошибка #16062608, Ошибка #16715809, Ошибка #69045)

В MySQL 5.7 возможно предварительно загрузить, индексирует на определенных разделах разделенных MyISAM таблицы. Например, следующих 2 операторов, первые предварительные нагрузки индексируют для раздела p0 из разделенной таблицы pt, в то время как вторые предварительные нагрузки индексирование для разделов p1 и p3 из той же самой таблицы:

LOAD INDEX INTO CACHE pt PARTITION (p0);LOAD INDEX INTO CACHE pt PARTITION (p1, p3);

Предварительно загружать индексирование для всех разделов в таблице pt, можно использовать любой из следующих 2 операторов:

LOAD INDEX INTO CACHE pt PARTITION (ALL);LOAD INDEX INTO CACHE pt;

Эти два оператора, только показанные, эквивалентны, и выпускающий любого из них имеет точно тот же самый эффект. Другими словами, если Вы хотите предварительно загрузить, индексирует для всех разделов разделенной таблицы, тогда PARTITION (ALL) пункт является дополнительным.

Когда предварительно загружение индексирует для многократных разделов, разделы не должны быть непрерывными, и Вы не обязаны перечислять их имена в любом определенном порядке.

LOAD INDEX INTO CACHE ... IGNORE LEAVES у сбоев, если все не индексирует в таблице, есть тот же самый размер блока. Можно определить, индексируют размеры блока для таблицы при использовании myisamchk-dv и проверки Blocksize столбец.