特定テーブルにあるインデックスをCacheしてパフォーマンスアップする方法

TABLE007、TABLE008にあるインデックスをTABLE_IDX_CACHEにロードしてみる。
サイズは2MBとしてみる。

テーブル構造

index_cache

1) TABLE_IDX_CACHEという名前のキーCACHEを作成

mysql> SET GLOBAL TABLE_IDX_CACHE.key_buffer_size = 2 * 1024 * 1024;
Query OK, 0 rows affected (0.01 sec)

2) 作成したCACHEにテーブルを割り当てる

mysql> CACHE INDEX animals,animals02 IN TABLE_IDX_CACHE;
+----------------+--------------------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+----------------+--------------------+----------+----------+
| DB02.animals | assign_to_keycache | status | OK |
| DB02.animals02 | assign_to_keycache | status | OK |
+----------------+--------------------+----------+----------+
2 rows in set (0.00 sec)

mysql>

index_cache2

3) INDEXを作成したKEY CACHEにロードする。


mysql> LOAD INDEX INTO CACHE animals,animals02;
+----------------+--------------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+----------------+--------------+----------+----------+
| DB02.animals | preload_keys | status | OK |
| DB02.animals02 | preload_keys | status | OK |
+----------------+--------------+----------+----------+
2 rows in set (0.00 sec)

index_cache3

—————— 上記の方法で特定テーブルのIndexをKey Cacheにロードは完了 ———–

サーバー起動時に常に上記のインデックスをKey Cacheにロードしておく為には
以下の方法でロードする事が出来る。
——————————————————————————————————

(1) init_cache.sqlの作成 (インデックスロードスクリプト)


SET GLOBAL TABLE_IDX_CACHE.key_buffer_size = 2 * 1024 * 1024;
CACHE INDEX animals,animals02 IN TABLE_IDX_CACHE;
LOAD INDEX INTO CACHE animals,animals02;

(2)mysqlを起動するときに次のようにスクリプトを指定して起動させる

[root@colinux ~]# mysqld --init-file=init_cache.sql

※my.cnfに記入してもOK。

Comments are closed.

Post Navigation