1. インデックスの原則 インデックスは、列内の特定の値を持つ行をすばやく見つけるために使用されます。インデックスがない場合、MySQL は最初のレコードから開始し、関連する行が見つかるまでテーブル全体を読み取る必要があります。テーブルが大きいほど時間がかかります。順序付けられたフィールドにはバイナリ検索を適用できるため、パフォーマンスが大幅に向上します。 MYISAMとINNODBはどちらもインデックス構造としてB+Treeを使用しています。 (主キーと一意キーはデフォルトでインデックスを追加します) 2. インデックスを作成する インデックスを使用しない場合、1500 を超える給与を照会するときにテーブル全体のスキャンが実行されます。 フィールドにインデックスを追加する必要があるのはいつですか? - テーブル内のこのフィールドのデータ量は膨大です - 頻繁に検索され、where句に頻繁に出現するフィールド - DMLで頻繁に操作されるフィールドにインデックスを追加することは推奨されません。 索引は本の目次のようなものです。 主キーは自動的にインデックスを追加するため、主キーに基づいてクエリを実行する方が効率的です。 sal に基づいて頻繁にクエリを実行し、パフォーマンスのボトルネックが発生する場合は、まずプログラムにアルゴリズムの問題があるかどうかを確認し、次に sal のインデックス作成を検討してください。インデックスは次のように作成されます。 1. テーブル名(列名)に一意のインデックス インデックス名を作成します。 emp(ename) に一意のインデックス u_ename を作成します。 2. テーブルテーブル名を変更し、一意のインデックスインデックス名(列名)を追加します。 2. テーブルテーブル名を変更し、一意のインデックスインデックス名(列名)を追加します。 3. インデックスを表示する emp からインデックスを表示します。 4. インデックスを使用する select * を使用してはいけないことに注意してください... type!=all が表示され、インデックスが使用されていることがわかります sal > 1500 の場合、emp から sal を選択します。 条件内のsalはインデックスを使用する 上記のように、sal が 1500 より大きいすべての行を検索する場合は、インデックスをスキャンできます。インデックスはソートされ、結果は 7 行になります。一致するレコードはもう存在しないことがわかっているので、終了できます。 インデックス テーブル内の中間ポイントより前に表示されない値を探している場合は、テーブルを順次スキャンせずに最初に一致するインデックス エントリを見つける位置アルゴリズム (バイナリ検索など) もあります。 この方法では、最初に一致する値をすばやく見つけることができるため、検索時間を大幅に節約できます。データベースはさまざまな手法を使用してインデックス値をすばやく見つけますが、これは通常 DBA の作業です。 5. インデックスを削除する DROP INDEX index_name ON talbe_name ALTER TABLE テーブル名 DROP INDEX インデックス名 ALTER TABLE テーブル名 DROP PRIMARY KEY 最初の 2 つのステートメントは同等であり、table_name 内のインデックス index_name を削除します。 テーブルには PRIMARY KEY インデックスを 1 つしか持つことができないため、3 番目のステートメントは PRIMARY KEY インデックスを削除する場合にのみ使用されます。 mysql> ALTER TABLE EMP DROP INDEX test_index; 削除後、インデックスは使用されなくなり、クエリは完全なテーブルスキャンを実行します。 上記はMySQLインデックスの詳細な理解に関する内容です。MySQLインデックスの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: JavaScriptイベント実行メカニズムの深い理解
>>: Win10+Ubuntu 20.04 LTS デュアル システム インストール (UEFI + GPT) (画像とテキスト、複数の画像には注意)
翻訳プログラムを例に挙げてみます。前回はWindowsでのアプリケーションのパッケージ化についてお話...
目次1. ソフトウェアパッケージ2. gccをインストールする3. libfastcommonをイン...
MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...
スプライトカウダウンロード CSS リントダウンロード プレフィックスダウンロード 1140px C...
この記事では、オブジェクト パラメータをインスタンス化して MySQL でデータをクエリする方法を紹...
次の図に示すように: Centos 7.0以上であれば問題ありません。現在のシステム カーネル バー...
少し前に、docker ディスク容量が小さすぎてデータを書き込めないという問題が発生しました。理由は...
背景会社のサブプロジェクトが増えるにつれて、さまざまなサイズのプロジェクトが10個以上になります(バ...
LinuxにMySQLがすでにインストールされているかどうかを確認する sudo service m...
ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...
効果図: 全体的な効果: ビデオ読み込み中: 写真:ステップ1: HTML要素を作成するまず、HTM...
目次プラン依存関係をインストールする依存関係の導入pxをremに変換するFlexible.jsを変更...
1. ブロックレベル要素: 独立して存在できる能力を指します。通常、ブロックレベル要素は改行によって...
今日は、開発でよく使われる、非常に便利な HTML タグをいくつかまとめてみたいと思います。これらの...
1. 問題Windows 上の Eclipse を使用して開発されたプロジェクトは Windows ...