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) (画像とテキスト、複数の画像には注意)
1. 兄弟要素の余白を結合する効果は次のようになります: (2 つの間の間隔は 150 ピクセルでは...
1. 環境整備:オペレーティング システム: CentOS Linux リリース 7.5.1804 ...
目次1. GRUB暗号化とは何か2. grub暗号化手順3. grub暗号化のロック属性1. GRU...
背景Docker の人気は、コンテナの共有と移植が容易であることと密接に関係しています。ユーザーは、...
目次1. なぜ vue3 が必要なのでしょうか? 2. vue3の利点3. 応答原則の違い4. ライ...
1. xshell を使用して仮想マシンに接続するか、仮想マシンに直接コマンドを入力します。以下はx...
先ほど MySQL パスワードを設定したのに、外食したり荷物を受け取ったりするときにパスワードを忘れ...
目次序文仮想DOM仮想DOMとは仮想DOMの利点レンダリング関数とは何ですか? jsx Vue3 で...
Baiduで検索しました。 。 chcp コマンドを使用して、cmd の文字エンコーディングを 65...
この記事の例では、JavaScriptで4桁のランダムな検証コードを生成する具体的なコードを参考まで...
1. レスポンシブな Web を開発するには、ページを画面サイズに適応させる必要があります。前の記...
Dockerは参考までにMySQLバージョン8.0.20をインストールします。具体的な内容は以下のと...
MySql インデックスの詳細な紹介と正しい使用方法1. はじめに:インデックスはクエリ速度に重大な...
序文最近、偶然 MySQL の coalesce を発見しました。ちょうど時間があったので、MySQ...
目次Matlab セントロイドアルゴリズムMatlab はクローズドな商用ソフトウェアであり、米国政...