一、索引
什么是索引?
一般的应用系统,读写比例在 10:1 左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。 说起加速查询,就不得不提到索引了
索引的优缺点
优点:
可以快速检索,提高查询效率;根据索引分组和排序,可以加快分组和排序
缺点:
1, 创建和维护索引要耗费时间
2,索引需要占用物理空间,一般来说,索引表占用的空间是数据表的 1.5 倍,同时,当对表中的数据进行更新操作时,索引也要动态地维护,这样就降低了数据的维护效率。
哪些表或列适合创建索引?
关于使用聚集和非聚集索引的原则:
注意: 其中聚集索引的使用对查询性能的提升尤为重要,一定要建立在:
1) 您最频繁使用的、用以缩小查询范围的字段上;
2) 您最频繁使用的、需要排序的字段上。
索引失效的情况:
- 在组合索引中不能有列的值为 NULL,如果有,那么这一列对组合索引就是无效的;
- 在一个 SELECT 语句中,索引只能使用一次,如果在 WHERE 中使用了,那么在 ORDER BY 中就不要用了;