インデックスとは何ですか?
インデックスは、ストレージ エンジンがレコードを迅速に検索できるようにするデータ構造であり、データのディレクトリとも言えます。インデックスファイルはB-Tree形式で保存されます
インデックスの役割は何ですか?
1. インデックスにより、データの取得とデータのグループ化と並べ替えが高速化されます。
3. インデックスにより、リレーショナル テーブルの接続速度が高速化されます。インデックスのデメリットは何ですか?
1. インデックスの作成と維持には時間がかかり、インデックスのサイズが大きくなるにつれて増加します2. インデックスの作成には、テーブル内のデータが追加、削除、または変更されると、インデックスが消費されます。動的に維持する必要もあります
なぜクエリ速度を改善できるのでしょうか?
主な理由は、逐次検索の効率がB+tree構造検索よりも低いためです(これは詳細に理解する必要があります)
インデックスタイプ?
1. 主キーインデックスprimark key null 値を許可しない特殊な一意のインデックスです。通常、主キーインデックスはテーブル作成時に同時に作成されます。注: テーブルには主キーを 1 つだけ持つことができます。 2. ユニークインデックスユニークインデックス設定のキーワード unique ユニークインデックス列の値は一意である必要がありますが、null 値も許可されます。複合インデックスの場合、列値の組み合わせは一意である必要があります。
3. 通常のインデックス これは最も基本的なインデックスであり、制限はありません。
4. 複合インデックス
つまり、インデックスには複数の列が含まれており、主にテーブルの逆クエリを回避するために使用されます
5. フルテキスト インデックス
1. -- 1. PRIMARY KEY (主キー インデックス) を追加します
ALTER TABLE ` table_name` ADD PRIMARY KEY (`column`) ;
ALTER TABLE `table_name` ADD UNIQUE (`column`);
3. (通常のインデックス)
ALTER TABLE `テーブル名` ADD INDEX インデックス名 (`列`);
4. -- 4. FULLTEXT (フルテキスト インデックス) を追加します
ALTER TABLE `テーブル名` ADD FULLTEXT (`列`) ;
5. -- 5. 複数列インデックスを追加します
ALTER TABLE `table_name` ADD INDEX Index_name (`column1`, `column2`, `column3`);
インデックスは一度作成すると変更できません。インデックスを変更する場合は、インデックスを削除して再構築することしかできません。 DROP INDEX インデックス名 ON テーブル名を使用してインデックスを削除できます。
なぜ単一列インデックスに基づく結合インデックスが必要なのでしょうか?
なぜなら、結合インデックスを作成しないと、mysql は最も効率的なインデックスの 1 つだけを使用し、効率は平凡だからです 結合インデックスの一番左の原則は何ですか? 結合インデックス usernname、city、age は、実際には次の 3 つの結合インデックスのセットを確立することと同じです: SELECT * FROM mytable WHREE username="admin" AND city="Zhengzhou"SELECT * FROM mytable WHREE username="admin" 以下のものは使用されません: SELECT * FROM mytable WHREE age=20 AND city="鄭州"SELECT * FROM mytable WHREE city="鄭州" インデックスの作成原則: 一番左の原則 カーディナリティが小さいテーブルにはインデックスを作成しないのが最善です 微分性の高い列をインデックスとして選択するようにしてください 新しいインデックスを作成せず、可能な限りインデックスを拡張してください。 クエリ条件、並べ替え、グループ化、結合操作としてよく使用する必要があるフィールドのインデックスを作成します インデックスの数を制限し、やみくもにインデックスを作成しないでください 小さいインデックスを使用するようにしてくださいデータの量を増やし、インデックス付けにプレフィックスを使用します もう使用されなくなった、またはめったに使用されないインデックスを削除します インデックスの最適化について: インデックス列での計算の使用を避ける 使用を避けるインデックス列では not
1.usernname,city,age; 、都市; 3.ユーザー名
都市と年齢のような複合インデックスがないのはなぜですか?これは、MySQL 複合インデックスの「左端のプレフィックス」の結果です。簡単に理解すると、組み合わせは左端から開始するだけです。これら 3 つの列を含むクエリだけがこの結合インデックスを使用するだけでなく、次の SQL でもこの結合インデックスが使用されます:
以上がインデックス作成に関する知識ポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。