前言
查询索引的sql:
1.show index from xxx表
2.show keys from xxx表
Table: 表名
Key_name: 索引的名字
Column_name:索引的哪一列(该字段的列)
Index_type:索引类型
删除索引的sql:
drop index 索引名 on xxx表
一、单值索引(index)
创建索引的方式1:
CREATE TABLE customer
id INT(10)AUTO INCREMENT,
customer_no VARCHAR(200),
customer_name VARCHAR(200),
PRIMARY KEY (id),
KEY (customer_name) --给customer name列建立索引
创建索引的方式–单独建立:
create index 创建索引的名字 on 表(要建的字段)
例如:
create index customer_name_name on customer(customer_name )
二、唯一索引
创建索引的方式1:
CREATE TABLE customer
id INT(10)AUTO INCREMENT,
customer_no VARCHAR(200),
customer_name VARCHAR(200),
PRIMARY KEY (id),
unique (customer_no) --给customer_no列建立索引
创建索引的方式–单独建立:
create unique index 创建索引的名字 on 表(要建的字段)
例如:
create unique index customer_name_unique on customer(customer_no )
三、主键索引
创建索引的方式1:
CREATE TABLE customer
id INT(10)AUTO INCREMENT,
customer_no VARCHAR(200),
customer_name VARCHAR(200),
PRIMARY KEY (id) --给id列建立索引
创建索引的方式–单独建立:
alter table 表 add PRIMARY KEY 表(要建的字段)
例如:
alter table customer add PRIMARY KEY customer(id)
删除主键索引
alter table 表 drop PRIMARY KEY
四、复合索引
创建索引的方式1:
CREATE TABLE customer
id INT(10)AUTO INCREMENT,
customer_no VARCHAR(200),
customer_name VARCHAR(200),
PRIMARY KEY (id),
KEY (customer_no,customer_name) --给customer_no,customer_name列建立索引
创建索引的方式–单独建立:
create index 创建索引的名字 on 表(要建的字段,字段,......)
例如:
create index customer_name_name on customer(customer_no,customer_name)
五、适合创建索引的情况
1)主键自动建立唯一索引
2)频繁作为查询条件的字段应该创建索引
3)查询中与其它表关联的字段,外键关系建立索引(主表不建索引,关联的那个表建索引)
4)单键/复合索引的选择问题,复合索引性价比更高
5)查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
6)查询中统计或者分组字段
总结:查询中过滤、统计、分组、排序、关联所能用到的字段应该建立素引:
净卖已[P出老专宣△安己甘吹老专笛洁安已
六、不适合创建索引的情况
1)表记录太少
2经常增删改的表或者字段
3)Where条件里用不到的字段不创建索引
4)过滤性不好的不适合建索引