索引就是一个数据结构,是为了提高效率,以空间换时间。
索引的分类和创建
普通索引
- 直接创建索引
create index index_name on tablename(column_name);
- 建表时指定索引
create table tablename (index index_name(column_name));
- 修改添加索引
alter table tablename ADD index index_name on column_name;
主键索引
基于主键建立索引
唯一索引
基于唯一键建立索引
全文索引
可以从char、varchar、text作为create table的一部分被创建。
组合索引
必须满足最左前缀原则 从左向右依次包含
select *from title where id=xxx; //可以
select *from title where time=xx; //不可以
select *from title where id=xx and time=xx; //可以 ,必须有id才能作为索引
索引的优化
- 哪种情况应该建立索引
- 查询较多
- 键:主键、外键
- 用于连接两个表的字段
- 经常需要排序字段 BST
- 范围查询
- 哪种情况不需要建立索引
- 查询较少
- 数值少
- 数值太多
- 修改的操作大于查询操作
索引的注意事项
- 索引值不能出现空列
- 尽可能使用短索引