MySQLデータベース-インデックス
2671 ワード
インデックスはMysqlではストレージエンジンがレコードを迅速に見つけるためのデータ構造(BTree,バランスツリー)であり、インデックスはデータベースの良好な性能にとって非常に重要であり、特にテーブル内のデータ量がますます大きくなると、インデックスが性能に与える影響がますます重要になる.
インデックスは辞書のディレクトリに相当し、単語を検索するときにディレクトリを通じてクエリーの速度を高めることができます.そうしないと、辞書の各ページをめくる必要があります.
インデックスの使用目的:クエリーの高速化.
インデックスの特徴:インデックスの作成と維持には多くの時間とディスク領域がかかりますが、クエリーの速度は大幅に向上します.(ディクショナリ・ディレクトリの作成に時間がかかり、ディクショナリ・ディレクトリがディクショナリ・サイズを占める必要があります)
索引構文
構文1:テーブルの作成時にインデックスを追加します.create tableテーブル名(フィールド名1データ型、フィールド名2データ型...、Index|key[インデックス名](フィールド名);
構文2:テーブルを作成したら、インデックスを追加します.create tableテーブル名(フィールド名1データ型、フィールド名2データ型、...);
インデックス分類
インデックスを話す前に、テーブルt 2を作成する必要があります.
1.一般索引
通常のインデックスは、空で繰り返し可能な通常のインデックスです.
構文:
表2への一般インデックスの追加
2.一意のインデックス
ユニークなインデックスです.空でも繰り返してはいけません.
フィールド名phoneを一意のインデックスに設定します.
テーブルの作成の詳細を表示するには、次の手順に従います.
印刷すると次のようになります.
3.プライマリ・キー索引
プライマリ・キー・インデックスは、空ではなく、繰り返してはいけません.プライマリ・キーであればインデックスです.
構文
テーブルt 2のidにプライマリキーインデックスを設定する
設定結果の表示
4.複数列索引構文:
索引の削除
索引を削除する構文は次のとおりです.
例えば、テーブルt 2のインデックスを削除する:
インデックスを使用するには何に注意すればいいですか?少量データ非使用 クエリ数が少ないインデックスを使用しない クエリーはインデックスフィールドを携帯し、通常selectの後に最初の に配置される.インデックスは、クエリーの効率を向上させ、多くのリソースを占有します.
注意:1、インデックスは多ければ多いほど良いわけではありません.(1冊の本、半分の本は目次ではいけません).
インデックスは辞書のディレクトリに相当し、単語を検索するときにディレクトリを通じてクエリーの速度を高めることができます.そうしないと、辞書の各ページをめくる必要があります.
インデックスの使用目的:クエリーの高速化.
インデックスの特徴:インデックスの作成と維持には多くの時間とディスク領域がかかりますが、クエリーの速度は大幅に向上します.(ディクショナリ・ディレクトリの作成に時間がかかり、ディクショナリ・ディレクトリがディクショナリ・サイズを占める必要があります)
索引構文
構文1:テーブルの作成時にインデックスを追加します.create tableテーブル名(フィールド名1データ型、フィールド名2データ型...、Index|key[インデックス名](フィールド名);
構文2:テーブルを作成したら、インデックスを追加します.create tableテーブル名(フィールド名1データ型、フィールド名2データ型、...);
Alter table add {unique | primay key| index... } ( )
インデックス分類
インデックスを話す前に、テーブルt 2を作成する必要があります.
create table t2( id int, name varchar(20),phone varchar(20));
1.一般索引
通常のインデックスは、空で繰り返し可能な通常のインデックスです.
構文:
ALTER TABLE ADD INDEX _index( );
表2への一般インデックスの追加
ALTER TABLE t2 ADD INDEX phone_index(phone);
2.一意のインデックス
ユニークなインデックスです.空でも繰り返してはいけません.
ALTER TABLE ADD UNIQUE( ); #
ALTER TABLE ADD type UNIQUE; # 。
フィールド名phoneを一意のインデックスに設定します.
alter table t2 add UNIQUE phone_index(phone);
テーブルの作成の詳細を表示するには、次の手順に従います.
show create table t2;
印刷すると次のようになります.
CREATE TABLE `t2` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
UNIQUE KEY `phone_index` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
3.プライマリ・キー索引
プライマリ・キー・インデックスは、空ではなく、繰り返してはいけません.プライマリ・キーであればインデックスです.
構文
alter table add PRIMARY key( );
テーブルt 2のidにプライマリキーインデックスを設定する
alter table t2 add PRIMARY key(id);
設定結果の表示
show create table t2
CREATE TABLE `t2` (
`id` int(11) NOT NULL DEFAULT '0',
`name` varchar(20) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `phone_index` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
4.複数列索引構文:
ALTER TABLE ADD INDEX( 1, 2, 3);
索引の削除
索引を削除する構文は次のとおりです.
Drop index on ;
例えば、テーブルt 2のインデックスを削除する:
drop index phone_index on t2;
インデックスを使用するには何に注意すればいいですか?
注意:1、インデックスは多ければ多いほど良いわけではありません.(1冊の本、半分の本は目次ではいけません).