インデックスとは?インデックスの作成方法インデックスの使用原則?
3173 ワード
説明:プライマリ・キー列は自動的にインデックスを作成します
インデックスの作成:
--
-- alter table add index [ ]( , ..)
-- name
alter table classes add index my_name (name);
説明:索引名は指定されず、デフォルトではフィールド名が使用されます.
索引の削除:
--
-- alter table drop index
-- , sql
show create table classes;
alter table classes drop index my_name;
create table test_index(title varchar(10));
テーブルに10万個のデータを挿入します.
from pymysql import connect
def main():
# Connection
conn = connect(host='localhost',port=3306,database='python',user='root',passwor
d='mysql',charset='utf8')
# Cursor
cursor = conn.cursor()
# 10
for i in range(100000):
cursor.execute("insert into test_index values('ha-%d')" % i)
#
conn.commit()
if __name__ == "__main__":
main()
インデックス・パフォーマンスの検証:
-- :
set profiling=1;
-- 1 ha-99999
select * from test_index where title='ha-99999';
-- :
show profiles;
-- title :
alter table test_index add index (title);
--
select * from test_index where title='ha-99999';
--
show profiles;
4.結合インデックス結合インデックスは複合インデックスとも呼ばれ、1つのインデックスがテーブル内の2つ以上のフィールドを上書きし、一般的に複数のフィールドが一緒にクエリーされる場合に使用されます.
-- teacher
create table teacher
(
id int not null primary key auto_increment,
84
name varchar(10),
age int
);
--
alter table teacher add index (name,age);
統合インデックスの利点:インデックスを作成するたびにインデックスファイルが作成されるため、ディスク領域のオーバーヘッドが削減されます.
--
select * from stu where name=' ' -- name
select * from stu where name=' ' and age=10
-- , name age
--
select * from stu where age=10 -- , name | name age
説明:連合インデックスのクエリーデータを使用する場合は、連合インデックスの一番左側のフィールドがクエリー条件に表示されることを保証しなければなりません.そうしないと、連合インデックスは失効します.
使用原則:
小結インデックスはデータベースのクエリー速度を速める手段でインデックスを作成するために使用されます:alter tableテーブル名add indexインデックス名[オプション](フィールド名、xxx);削除インデックス使用:alter tableテーブル名drop indexインデックス名;