索引
MySQL中使用B+Tree构建索引,因为这种方式在搜索效率方面较高。
B-/+Tree结构详解,MySQL索引原理
索引使用
- 索引创建
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON table_name(index_col_name(length));
- 显示索引信息
SHOW INDEX FROM table_name;
- 删除索引
DROP INDEX index_name ON table_name;
- ALTER命令
1. 添加主键,也就添加了索引
alter table table_name add primary key(column_list);
2. 添加唯一索引
alter table table_name add unique index_name(column_list);
3. 添加普通索引
alter table table_name add index index_name(column_list);
4. 全文索引
5. alter table table_name add fulltext index_name(column_list);
索引设计原则
- 查询频次较高,数据量大的表建立索引
- 经常在查询条件中的字段建立索引
- 尽量使用唯一索引,检索效率较高
- 索引并不是越多越好
- 尽量使用短字段索引,占用内存较高
- 利用最左前缀,n列组合成的组合索引,相当于创建了n个索引
create index index_name_authors_price on books(name,authors,status);
相当于建立了:
对name建立索引
对 name,authors建立索引
对name,authors,status建立索引