内容来自《Java Web 程序员面试笔试宝典》
【出现频率】★★★★☆ 【学习难度】★★★☆☆
答案:为最大限度地发挥索引的优势,在创建索引时要注意以下几点。
- 首先在一个表上不宜创建过多的索引。一般不应超过五个索引。过多的索引会导致在索引上开销太大,从而影响查询性能。如果一张表上需要建立过多索引,则需要考虑这张表的设计是否合理。
- 在经常需要搜索的列上创建索引,可以加快搜索的速度。
- 在经常用在连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度。
- 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。
- 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询速度。
- 在经常使用的 where 子句中的列上面创建索引,加快条件的判断速度。
以下情况,不宜建立索引。
- 对于在查询过程中很少使用或参考的列,不宜建立索引。
- 对于那些只有很少数据值的列,不宜建立索引。
- 对于那些定义为image、text和bit数据类型的列,不宜建立索引。
- 频繁写操作的列,不宜建立索引。