クエリキャッシュ1. クエリキャッシュの動作原理クエリ ステートメントを実行する前に、MySQL はクエリ ステートメントをクエリ キャッシュ内のステートメントとバイト単位で比較します。完全に一致するものだけが同一であるとみなされます。次のように、これら 2 つのステートメントは異なるクエリと見なされます。
1) 異なるデータベース、異なるプロトコル バージョン、または異なる文字セットに対するクエリは、異なるクエリとして扱われ、個別にキャッシュされます。 2) 次の2種類のクエリはキャッシュされません
3) クエリ キャッシュからクエリ結果を取得する前に、MySQL は、クエリに関係するすべてのデータベースとテーブルに対するクエリ権限がユーザーにあるかどうかを確認します。権限がない場合、キャッシュされたクエリ結果は使用されません。 4) キャッシュクエリからクエリ結果が返された場合、サーバーはCom_selectの代わりにQcache_hitsステータス変数を増分します。 5) テーブルが変更されると、そのテーブルを使用するすべてのキャッシュされたクエリが無効になり、キャッシュから削除されます。テーブルは、INSERT、UPDATE、DELETE、TRUNCATE TABLE、ALTER TABLE、DROP TABLE、DROP DATABASE などのいくつかの種類のステートメントによって変更される場合があります。 参考リンク: http://dev.mysql.com/doc/refman/4.1/en/クエリキャッシュ操作.html 2. キャッシュクエリが有効になっているかどうかを確認する
MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視 3. クエリキャッシュからすべてのクエリキャッシュを削除します。
4. クエリキャッシュのパフォーマンス監視
MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視 出力の説明: Qcache_free_blocks: クエリキャッシュ内の空きメモリブロック Qcache_free_memory: クエリキャッシュ内の空きメモリの量 Qcache_hits: クエリキャッシュヒット数 Qcache_inserts: クエリ キャッシュに追加されたクエリの数 (キャッシュされなかった読み取りではなく、無効化された読み取り) Qcache_lowmen_prunes: メモリ不足のためクエリ キャッシュから削除されたクエリの数。 Qcache_not_chached: キャッシュされていないクエリの数(query_cache_type 設定によりキャッシュされていない) Qcache_queries_in_cache: キャッシュクエリに登録されたクエリの数 Qcache_total_blocks: クエリキャッシュ内のメモリブロックの合計数 合計 SELECT クエリ数: Com_select+Qcache_hits+ パーサーによってエラーが検出されたクエリの数 このうち、Com_select はキャッシュミスの数を表し、Qcache_hits はキャッシュヒットの数を表します。 Com_select計算式: Qcache_inserts+Qcache_not_cached+権限チェックエラーの数(列権限チェック中にエラーが見つかったクエリ) インデックス監視
MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視 出力の説明: ハンドラ_read_first インデックスの最初のエントリが読み取られた回数。この値が高い場合、サーバーがフルインデックススキャンを頻繁に実行していることを示します。たとえば、col1がインデックス化されていると仮定すると、SELECT col1 FROM foo インデックスの最初のエントリが読み取られる回数。この値が高い場合、col1 がインデックス付けされていると想定して、サーバーが SELECT col1 FROM foo などの完全なインデックス スキャンを多数実行していることを意味します。 ハンドラ読み取りキー キーに基づいて行を読み取る要求の数。この値が高い場合、クエリに対してテーブルが適切にインデックス付けされていることを示しています。 キーに基づいて行を読み取る要求の数。この値が高い場合、実行されているリクエストに対してテーブルが適切にインデックスされていることを示しています。 ハンドラ_read_next キー順序で次の行を読み取る要求の数。範囲制約のあるインデックス列をクエリしている場合、またはインデックス スキャンを実行している場合は、この値が増加します。 キーの順序に従って次の行を読み取る要求の数。制約セットを使用してインデックス列をクエリしたり、インデックス スキャンを実行したりすると、この値が増加します。 ハンドラー_read_prev キー順で前の行を読み取る要求の数。この読み取り方法は主にORDER BY ... DESCを最適化するために使用されます。 キーの順に前の行の読み取りを要求する回数。この読み取り方法は主にORDER BY ... DESCを最適化するために使用されます。 ハンドラ_read_rnd 固定位置に基づいて行を読み取る要求の数。結果の並べ替えを必要とするクエリを多数実行している場合、この値は高くなります。MySQL がテーブル全体をスキャンする必要があるクエリが多数あるか、キーを適切に使用しない結合がある可能性があります。 固定位置の行を読み取る要求の数。値が高い場合は、結果セットの並べ替えを必要とするクエリが多数実行されていることを示します。テーブル全体のスキャンを必要とするクエリや、適切なキーを使用しない結合を多数実行している可能性があります。 ハンドラー_read_rnd_next データ ファイルの次の行を読み取る要求の数。テーブル スキャンを頻繁に実行している場合、この値は高くなります。通常、これはテーブルに適切なインデックスが付けられていないか、クエリがインデックスを活用するように記述されていないことを示しています。 データ ファイル内の次の行を読み取る要求の数。値が高い場合は、完全なテーブルスキャンが多数実行されていることを示します。これは通常、テーブルが適切なインデックスを使用していないか、クエリ要求が既存のインデックスを活用していないことを示します。 参考リンク: http://dev.mysql.com/doc/refman/5.7/en/dynindex-statvar.html#statvar-index-H 参考リンク: http://dev.mysql.com/doc/refman/4.1/en/server-status-variables.html http://dev.mysql.com/doc/refman/4.1/en/query-cache-status-and-maintenance.html これで、MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視の紹介に関するこの記事は終了です。MySql キャッシュ クエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: CSS で動的な画像の 9 グリッド レイアウトを実装するためのサンプル コード
状況は以下のとおりです: (PS: 赤いボックスは iframe 領域を表し、灰色の四角形は上記の ...
ファイル名が少ないファイルを表示ファイル名を少なく | grep -n コンテンツを検索内容に応じて...
目次1. DOM の違い2. 同じレイヤーの同じタイプの要素にキー属性を追加する3. キーはインデッ...
目次導入:感情のインストール:一般的な CSS コンポーネントを追加します。既存のコンポーネントにス...
要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...
データベースを構築してプログラムを書くとき、日付と時刻の使用は避けられません。データベースには、ti...
目次例1例2例3例4例1 <html> <ヘッド> <title>...
docker イメージ ID は一意であり、イメージを物理的に識別できます。repository: ...
序文最近、穴を掘ってスペースを作っているだけなので、心が空っぽになっているように感じます。テクノロジ...
目次1. プロセスとスレッドの概念2. ブラウザの原則3. 同期と非同期4. 実行スタックとタスクキ...
最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...
序文データベースは常に私の弱点でした。自分の経験 (python+sqlalchemy) を組み合わ...
昨日、VMware に CentOS7 をインストールしました。Tomcat パッケージを転送するた...
まとめインタビュー中、MySQL インデックスの問題について議論しているときに、B+ ツリー、B ツ...
背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的...