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

13.7.6.2. CACHE INDEX Синтаксис

CACHE INDEX  tbl_index_list [, tbl_index_list] ...  [PARTITION (partition_list | ALL)]  IN key_cache_nametbl_index_list:  tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]partition_list:  partition_name[, partition_name][, ...]

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

Следующий оператор присваивается, индексирует от таблиц t1, t2, и t3 к ключевому названному кэшу hot_cache:

mysql> CACHE INDEX t1, t2, t3 IN
        hot_cache;+---------+--------------------+----------+----------+| Table   | Op                 | Msg_type | Msg_text |+---------+--------------------+----------+----------+| test.t1 | assign_to_keycache | status   | OK       || test.t2 | assign_to_keycache | status   | OK       || test.t3 | assign_to_keycache | status   | OK       |+---------+--------------------+----------+----------+

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

Ключевой кэш упоминается в a CACHE INDEX оператор может быть создан, устанавливая его размер с оператором установки параметра или в установках параметров сервера. Например:

mysql> SET GLOBAL
        keycache1.key_buffer_size=128*1024;

К ключевым параметрам кэша можно получить доступ как элементы структурированной системной переменной. См. Раздел 5.1.5.1, "Структурированные Системные Переменные".

Ключевой кэш должен существовать прежде, чем можно будет присвоиться, индексирует к этому:

mysql> CACHE INDEX t1 IN
        non_existent_cache;ERROR 1284 (HY000): Unknown key cache 'non_existent_cache'

По умолчанию таблица индексирует, присваиваются основному (значение по умолчанию) ключевой кэш, создаваемый при запуске сервера. Когда ключевой кэш уничтожается, все индексирует присвоенный ему, становятся присвоенными ключевому кэшу значения по умолчанию снова.

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

В MySQL 5.7 этот оператор также поддерживается для разделенного MyISAM таблицы. Можно присвоиться один, или больше индексирует для один, несколько, или все разделы к данному ключевому кэшу. Например, можно сделать следующее:

CREATE TABLE pt (c1 INT, c2 VARCHAR(50), INDEX i(c1))    PARTITION BY HASH(c1)    PARTITIONS 4;SET GLOBAL kc_fast.key_buffer_size = 128 * 1024;SET GLOBAL kc_slow.key_buffer_size = 128 * 1024;CACHE INDEX pt PARTITION (p0) IN kc_fast;CACHE INDEX pt PARTITION (p1, p3) IN kc_slow;

Предыдущий набор операторов выполняет следующие действия:

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

CACHE INDEX pt PARTITION (ALL) IN kc_all;CACHE INDEX pt IN kc_all;

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

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

В MySQL 5.7 индексируйте предварительно загружение, также поддерживается для разделенного MyISAM таблицы. Для получения дополнительной информации см. Раздел 13.7.6.5,"LOAD INDEX INTO CACHE Синтаксис".

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