MySQL 5.1 リファレンスマニュアル :: 12 SQL ステートメント構文 :: 12.5 データベース管理ステートメント :: 12.5.5 その他の管理ステートメント :: 12.5.5.1 CACHE INDEX 構文
« 12.5.5 その他の管理ステートメント

12.5.5.2 FLUSH 構文 »
Section Navigation      [Toggle]
  • 12.5.5 その他の管理ステートメント
  • 12.5.5.1 CACHE INDEX 構文
  • 12.5.5.2 FLUSH 構文
  • 12.5.5.3 KILL 構文
  • 12.5.5.4 LOAD INDEX INTO CACHE 構文
  • 12.5.5.5 RESET 構文

12.5.5.1. CACHE INDEX 構文

CACHE INDEX
  tbl_index_list [, tbl_index_list] ...
  IN key_cache_name

tbl_index_list:
  tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]

CACHE INDEX ステートメントはテーブル インデックスを特定のキー キャッシュに割り当てます。これは MyISAM テーブルにしか利用されません。

次のステートメントは、インデックスをテーブル 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 の構文によって、テーブルからの特定のインデックスだけがキャッシュに割り当てられなければいけない、と指定する事ができます。現在のインプリメンテーションは、全てのテーブルのインデックスをキャッシュに割り当てるので、テーブル名以外を指定する利用は無いのです。

CACHE INDEX ステートメント内で参照されるキー キャッシュは、パラメータ設定ステートメントを設定するか、サーバ パラメータ設定の中で作成できます。例:

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

キー キャッシュ パラメータには、構造化システム変数のメンバとしてアクセスできます。詳しくは 項4.2.4.1. 「構造化システム変数」 を参照してください。

キー キャッシュは、インデックスをそれに割り当てる前に存在していなければいけません。

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

デフォルトで、テーブル インデックスは、サーバ起動時に作成された主要(デフォルト)キー キャッシュに割り当てられます。キー キャッシュが破壊される時、そこに割り当てられた全てのインデックスはデフォルト キーキャッシュに再び割り当てられます。

インデックスの割り当ては、サーバに対してグローバルに影響します。もし1つのクライアントが既存のキャッシュにインデックスを割り当てると、どのクライアントがクエリを発行したかに関わらず、このキャッシュはそのインデックスを含む全てのクエリに対して利用されます。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates