MySQLキャッシュ分類
InnoDBバッファプール
InnoDBログファイルとMyIsAMデータ用のOSキャッシュ
MyIsAMキーキャッシュ
クエリキャッシュ
手動で設定できないキャッシュ、バイナリログ、テーブル定義ファイル用のオペレーティングシステムキャッシュ
その他のキャッシュ、通常、あまり多くのメモリを必要としません
InnoDB バッファ プール
機能:
1. キャッシュ オブジェクトには、データ行、インデックス、挿入バッファ、ロック、内部データ構造が含まれます。
2. バッファプールを使用して書き込みを遅らせます。複数の書き込みをマージし、順次に書き込みます(ストレージデバイス)
関連パラメータ:
InnoDB バッファプールのサイズをクエリします。単位はバイトです
「innodb_buffer_pool_size」のような変数を表示します ;
innodb_max_dirty_pages_pct 変数は、ダーティ ページの数に影響します。
innodb_max_dirty_pages_pct の設定を表示します
innodb_max_dirty_ Pages_pct 変数 その後、バックグラウンド スレッドが開始され (高速フラッシュ モード)、ダーティ ページをディスクにフラッシュします
MySQL のメモリが不足すると、sqlserver の Lazywrite に似たバックグラウンド スレッドがあり、ダーティ ページをディスクに定期的に更新し、ダーティ ページによって占有されているメモリ領域を他のデータ (メモリにロードする必要があるデータ) で使用できるようにクリーンアップします。
トランザクション ログに空きがない場合、InnoDB は強力なフラッシュ モードに入ります。ログが大きいとパフォーマンスが向上する理由 (?)
バッファーの予熱:
データベースの読み込み時にディスクからキャッシュにデータをロードすると理解できます。を起動し、データアクセスのパフォーマンスを向上させます
バッファを予熱する2つの方法
1.Percinaサーバー
2.Init_fileの設定、つまり起動後にInit_fileにSQLを指定し、SQL文で指定したデータをバッファに書き込みます。
機能: MyisAM キー キャッシュはキー キャッシュとも呼ばれます。 MyisAM キー キャッシュは、データをキャッシュしません。
関連パラメーター。 :
MyisAM のキー キャッシュ (プール) はデフォルトで 1 つだけです )
設定オプション key_buffer_size key_buffer_size を設定するときにインデックスのサイズを参照します
またはそれ以上大きくする必要はありません。オペレーティング システム キャッシュによって予約されている総メモリの 25% ~ 50% より
から引き継ぎ、key_buffer_size select sum(index_length) from information_schema を設定するときにインデックス フィールドのサイズを引用します。 `TABLES`
MySQL はデフォルトですべてのインデックスを厚くしますデフォルトのキーキャッシュに、
各MyisAMキーキャッシュ(プール)はサイズが指定されており、インデックスをキャッシュするために複数のkey_buffer_sizesを作成可能
設定方法、追加
key_buffer_1.key_buffer_size = 1G
key_buffer_2.key_buffer_size = 1G
デフォルトを追加1つ、合計3つのkey_buffer_sizeがあります
キーキャッシュへのインデックスを指定します:
ulategue_key_buffer_size = 1G Index t1,t2 in key_buffer_1
またはinitで設定します_file
LODA INDEX INTO CACHE t1,t2 (デフォルトのバッファに割り当てられます)
キー キャッシュ使用量の計算:
100-((key_buffer_unused*key_cache_block_size)*100/key_buffer_size)
その他:
1. MyisAM はデータをキャッシュするためにオペレーティング システムのメモリを使用することが多いため、より多くのメモリを予約する必要があります。キー キャッシュの代わりにオペレーティング システム キャッシュ用です
2. MyisAM テーブルが使用されていない場合でも、key_buffer_size をより小さい値 (32M など) に設定する必要があります。mysql サーバーは内部で MyisAM テーブルを使用する可能性があります
スレッドキャッシュ
機能:
接続が閉じられている場合、解放されたスレッドはキャッシュされスタンバイ状態になります。
新しい接続がある場合、作成時にキャッシュにキャッシュされたスレッドを直接使用して、接続の効率を向上させることができます。
接続ごとに新しいスレッドを作成する必要はありません。 消費方法:
新しい受信接続はキャッシュからキャッシュされたスレッドを占有します (占有された後、キャッシュから削除されます)。
接続が閉じられるとき。 、スレッド キャッシュにまだ空きがある場合は、現在のスレッドがキャッシュ スレッドに返されます。
関連パラメータ:
Thread_cache_size はキャッシュの数を指定します。保存できるスレッド数
各スレッドが占有するメモリ空間は約 256kb です
非常に高い同時アクセスがない限り、そうならないはずです、一般にこの値を設定する必要はありません
単位はキャッシュされたスレッドの数です
show variables like 'thread_cache_size'
各スレッドが占有するメモリ空間は約256kbです
テーブルキャッシュ
機能:
主に MyisAM テーブルに関連します。キャッシュされるのは、テーブルの .frm 解析結果とその他のデータです。
キャッシュ後、テーブルへのアクセスの効率が向上します。 MyIsAM テーブルの場合、テーブルがキャッシュされた後、テーブルが使用中であることをマークするために MyisAM ヘッダー ファイルを変更する必要がなくなります
show variables like '%table_open_cache%';
InnoDB データ ディクショナリ テーブル
機能:
InnoDB テーブルをキャッシュする定義情報、
オープンするたびに InnoDB テーブルが作成されると、テーブルの定義はデータディクショナリにキャッシュされますが、テーブルが閉じられた後はキャッシュから削除されません
以上がMySQL キャッシュの分類と構成の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。