myql深さ学習7-インデックス

1530 ワード

1、あるテーブルのクエリーの結果を別のテーブルに挿入する
insert into table_name1 (column_list1) select (column_list2) from table_name2 where (condition)

2、インデックスは、データベース・テーブルの1つまたは複数のカラムの値をソートする構造で、インデックスを使用してデータベース内の特定のデータのクエリー速度を向上させることができます.インデックスは、データ・テーブルのすべてのレコードに対する参照ポインタを含む、ディスクに格納されたデータベース構造です.欠点:1インデックスの作成と維持に時間がかかり、データ量の増加に伴う時間も増加します.②ディスク領域を占有する.③データテーブルが赤くなったデータを増加、削除、修正する際にインデックスを動的に維持し、データのメンテナンス速度を低下させる.
3、一般インデックスの作成indexまたはkeyキーを使用します.そのうちpossible_keysは選択可能なキーワードを表し、keyは実際に使用されているキーワードを表す.
create table fruit( id int(11) auto_increment,name varchar(50)not null,price DECIMAL(8,2)not null,city VARCHAR(100)not null,primary key(id),index(city))そしてexplainによりインデックスを表示する場合のkeyはcity
explain select * from fruit where city = ‘beijing’
次のクエリー条件を使用すると、key値が空になります.
explain select * from fruit where name = ‘mei’
4、ユニークインデックスを作成します.ユニークインデックスは通常のインデックスと似ています.インデックス列の値はユニークでなければなりませんが、空の値を許可します.コンポジットインデックスの場合、カラムの値はコンポジット固有である必要があります.Unique indexキーワードを使用し、idに別名UniqIdxを付けます.
create table newfruit( id int not null, name varchar(50) not null, price DECIMAL(8,2) not null, city varchar(100) not null, UNIQUE INDEX UniqIdx(id) )
5、複数列のインデックスを作成し、クエリ条件にidが少なくとも含まれている場合にインデックスが利用され、クエリ条件でnameとpriceが単独で使用されている場合にインデックスは利用されません.
create table newfruit2( id int not null, name varchar(50) not null, price DECIMAL(8,2) not null, city varchar(100) not null, INDEX Mmindex(id,name,price) )
6、索引の削除
drop index_name on table_nameまたはalter table table_name drop index index_name