MySQL はハッシュ インデックスと Btree インデックスをサポートしています。 InnoDB と MyISAM は Btree インデックスのみをサポートしますが、Memory および Heap ストレージ エンジンはハッシュ インデックスと Btree インデックスの両方をサポートできます。 次のステートメントを使用して、現在のインデックスの使用状況を照会できます。 '%Handler_read%' のようなステータスを表示します。 +-----------------------+-------+ | 変数名 | 値 | +-----------------------+-------+ | ハンドラー_read_first | 0 | | ハンドラー読み取りキー | 0 | | ハンドラー_read_last | 0 | | ハンドラー_read_next | 0 | | ハンドラー_read_prev | 0 | | ハンドラー読み取り回数 | 0 | | ハンドラー_read_rnd_next | 0 | +-----------------------+-------+ インデックスが機能している場合、Handler_read_key の値は高くなります。この値は、インデックス値によって行が読み取られる回数を表します。値が低い場合、テーブル名にインデックスを追加することでのパフォーマンスの向上は高くないため、インデックスはあまり使用されません。 Handler_read_rnd_next の値が高い場合、クエリが非効率的に実行されていることを意味し、状況を改善するためにインデックスを作成する必要があります。この値は、データ ファイルの次の行を読み取る要求の数を意味します。大量のテーブルスキャンが行われている場合、Handler_read_rnd_next は高くなります。これは、インデックスが正しくないか、使用されていないことを示します。 最適化: 挿入ステートメントを最適化します。 1. テスト値()、()、()、() に挿入してみます。 2. 異なる顧客から複数の行を挿入する場合、INSERT 遅延ステートメントを使用すると、速度を上げることができます。遅延とは、INSERT ステートメントがすぐに実行されることを意味します。実際には、データはメモリ キューに配置され、実際にはディスクに書き込まれません。これは、各ステートメントを個別に挿入するよりもはるかに高速です。Low_priority は正反対です。挿入は、他のすべてのユーザーがテーブルの読み取りと書き込みを終了した後に実行されます。 3. インデックスファイルとデータファイルを別のディスクに保存する(テーブル作成ステートメントを使用) 4. バッチ挿入を実行している場合は、bulk_insert_buffer_size 変数値を増やして速度を上げることができますが、これは MyISAM テーブルの場合のみです。 5. テキストファイルからテーブルをロードする場合は、データファイルのロードを使用します。これは通常、挿入を使用するよりも20倍高速です。 group by ステートメントを最適化します。 デフォルトでは、MySQL はすべての group by フィールドをソートします。これは order by に似ています。クエリに group by が含まれているが、ユーザーが並べ替えられた結果の使用を避けたい場合は、order by null を指定して並べ替えを抑制できます。 order by ステートメントを最適化します。 場合によっては、MySQL はインデックスを使用して ORDER BY 句を満たすことができるため、追加のソートが不要になります。 where 条件と order by は同じインデックスを使用し、order by 順序はインデックス順序と同じで、order by フィールドは昇順または降順になります。 ネストされたクエリの最適化: MySQL 4.1 ではサブクエリのサポートが開始されましたが、場合によっては、特に結合するパッシブ テーブルにインデックスがある場合、サブクエリをより効率的な結合に置き換えることができます。その理由は、MySQL では、論理的に 2 つの手順を必要とするこのクエリを完了するために、メモリ内に一時テーブルを作成する必要がないためです。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:
docker イメージを使用する場合、以下に示すように、REPOSITORY と TAG の両方が ...
Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...
目次1. インデックスプッシュダウン最適化の原理2. インデックスプッシュダウンの具体的な実践1. ...
通常、プロジェクト開発では、マージン、位置、座標などを扱う必要があります。悲劇なのは、これらの概念が...
パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...
この記事ではクラスタの展開に関連する内容は紹介しませんバージョン制約Docker エンジン >...
目次1. Springbootプロジェクトを準備する2. 関連する設定を実行する3.パッケージ4.D...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
コード効果を異なるブラウザで表示することはよくあることなので、異なるショートカットキーを使用して対応...
ここでは、HTML ページのサイズを縮小した後に下部にスクロール バーを表示し、スクロール バーをス...
事前に言っておくDocker を使用すると非常にシンプルなデプロイメント環境を実現できることは誰もが...
長い引用には blockquote を、短い引用には q を、参考文献には cite を使用します。...
ゲーム史上最高スコアトップ100をチェックSQLコード cdb_playsgame ps から ps...
バックエンド管理システムで作業している場合、通常、メニュー権限制御に関連する問題に遭遇します。もちろ...
目次ネプローダーをインストールするプラグインのインポート始める配置折りたたみディスプレイノードをクリ...