什么是索引(index) ?
索引就像一本书的目录(index), 索引的主要意义就是进行查找并提高查找的效率;
创建也会付出一些代价, 例如消耗额外的储存空间, 索引量越大, 索引消耗的额外空间就越多;
索引创立后, 也就等于书的目录确定了, 后续每次对数的内容的调整, 都可能影响到目录的准确性, 就需要从新调整目录, 索引也是一样, 每次进行增删改之后, 往往需要调整索引的结构
有关索引指令
1. 创建索引
create index 索引名 on 表名(目标列名) ;
create index name_index on student(name) ;
2. 展示索引
show index from 表名 ;
-- 例如:
show index from student;
结果如下:
3. 删除索引
drop index 索引名 on 表格 ;
注意:
一定要在创建表之前就想好给谁创建索引, 有些列不可做索引, 有些列可以做.
好的索引要怎么做:
1、独立的列:索引列不能是表达式的一部分;
2、选择区分度高的列作为索引;
3、选择合适的索引列顺序:将选择性高的索引列放在最前列;
索引失效场景:
1、OR查询左右条件均不满足;
2、Like以%开头;
3、需要类型转换;
4、where中索引列有运算;
5、where中索引列使用了函数;