数据库索引的优缺点以及什么时候数据库索引失效
索引的特点
1 可以加快数据库的检索速度
2 降低数据库插入、修改、删除等维护的速度
3 只能创建在表上,不能创建到视图上
4 既可以直接创建又可以间接创建
5 可以在优化隐藏中使用索引
6 使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引
索引的优点
1 创建唯一性索引,保证数据库表中每一行数据的唯一性
2 大大加快数据的检索速度,这是创建索引的最主要的原因
3 加速数据库表之间的连接,特别是在实现数据的参考完整性方面特别有意义
4 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
5 通过使用索引,可以在查询中使用优化隐藏器,提高系统的性能
索引的缺点
1 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
2 索引需要占用物理空间,除了数据表占用数据空间之外,每一个索引还要占一定的物理空间,如果建立聚簇索引,那么需要的空间就会更大
3 当对表中的数据进行增加、删除和修改的时候,索引也需要维护,降低数据维护的速度
索引分类
1 直接创建索引和间接创建索引
2 普通索引和唯一性索引
3 单个索引和复合索引
4 聚簇索引和非聚簇索引
索引失效
1 如果条件中有or,即使其中有条件带索引也不会使用(这就是问什么尽量少使用or的原因)
2 对于多列索引,不是使用的第一部分,则不会使用索引
3 like查询是以%开头
4 如果列类型是字符串,那一定要在条件中使用引号引起来,否则不会使用索引
5 如果mysql估计使用全表扫秒比使用索引快,则不适用索引。