MySQLインデックス
インデックスの利点
インデックスとは、とても派手な名前ですが、はっきり言って、私たちの本の最新の目次です。
新華辞典を使用して、目次を使用せずに漢字「张」を検索する場合、新華辞典の最初のページから最後のページを見つける必要があり、最大 2 時間かかる場合があります。辞書が分厚くなればなるほど、時間がかかります。ここで、ディレクトリを使用して漢字「Zhang」を検索します。Zhang の最初の文字は z で、z で始まる漢字は 900 ページ以上あります。この手がかりがあれば、検索には 1 分しかかかりません。漢字の場合、これは性別の重要性を示しています。
インデックスは、列内の特定の値を持つ行をすばやく検索するために使用されます。
インデックスを使用しない場合、MySQL は最初のレコードから開始して、関連する行が見つかるまでテーブル全体を読み取る必要があります。テーブルが大きいほど時間がかかります。テーブル内のクエリ対象のカラムにインデックスがある場合、MySQL はすべてのデータを調べることなく、データ ファイルの中央を検索する段階にすぐに到達できます。
もちろん、インデックスの数が多すぎると、修正速度が遅くなります。変更されたデータを書き込むときは、インデックスも変更する必要があるためです。
MySQLインデックスタイプ
インデックスタイプ | 機能説明 |
---|---|
通常のインデックス | 最も基本的なインデックスであり、制限はありません |
一意のインデックス | 特定の行一意のインデックスを使用しますこの列の行データ内で重複する値は許可されません。この列のデータの各行は一意である必要があります |
主キー インデックス | これは、NULL 値を許可しない特別な一意のインデックスです。通常、主キーインデックスはテーブル作成時に同時に作成され、ユーザーIDに使用されることが多いです。本のページ番号に似ています |
全文インデックス | グローバル検索が必要なデータについては、全文インデックスを実行します |
注: 12.7 を完了した後で、次の部分を学習してください。
通常のインデックス
タイプ | 詳細な説明 |
---|---|
基本構文 | テーブルテーブルの追加インデックス(フィールド) |
例 | ALTER TABLEお金 A DD Index (Username );money ADD INDEX(username ); |
示例解释 | 为money表的username字段增加索引 |
唯一索引
詳細な説明
类型 | 详细说明 |
---|---|
基本语法 | alter table 表 add UNIQUE(字段) |
示例 | ALTER TABLEmoney ADD UNIQUE(email |
Money テーブルのユーザー名フィールドはインデックスを増加させます |
money
ADD UNIQUE(
email
); 例の説明マネーテーブルの電子メールフィールドに一意のインデックスを追加します
全文インデックス
タイプ | 詳細な説明 |
---|---|
基本構文 | alter table add FULLTEXT(field) |
例 | ALTER TABLEmoneyA DD FULLTEXT ( |
示例解释 | 为money表的content字段增加唯一索引 |
主键索引
类型 | 详细说明 |
---|---|
基本语法 | alter table 表 add PRIMARY KEY(字段) |
示例 | ALTER TABLEmoney ADD PRIMARY KEY(id ); |
例の説明 | 金額テーブルのコンテンツフィールドに一意のインデックスを追加します |
主キーインデックス
Type基本構文 alter table table add PRIMARY KEY (field)
詳しい説明
マネーテーブルの場合 id フィールドは主キーインデックスを追加します
test
(id
INT NOT NULL ,username
VARCHAR(20) NOT NULL ,password
INT NOT NULL ,content
例id
ALTER TABLEmoney
ADD PRIMARY KEY(password
);username
content
例の説明
test
( INT NOT NULL , VARCHAR(20) NOT NULL , INT NOT NULL , INT NOT NULL , 主キー ()、 INDEX pw ()、 ユニーク ()、 全文 () ) エンジン = InnoDB;