- 索引太多会影响插入,更新和删除的速度
- 不应该索引不稳定的列
- 在所有判断表达式创建索引
- 索引会占用磁盘空间
索引太多会影响插入,更新和删除的速度
索引太多会影响插入,更新和删除的速度,因为修改数据会同时更新索引,但是在大部分时间,这个时间是可以忽略的,它的副作用被明显夸大了。
不应该索引不稳定的列
不稳定的列指的是会频繁进行更新的列,索引键中有一列被更新时,索引更新大约会多花费10ms的时间(时间来源于《数据库索引设计与优化》,而且这本书好像是15年出的,想必这个时间现在只会更小),相对查询带来的速度,完全值得。
在所有判断表达式创建索引
查询时,数据库只会选择一个索引进行搜索,所以在where语句中的条件上新增索引并不一定会加快查询速度,如果要频繁根据固定的多个条件来查询,需要建立联合索引,而不是在每个条件上建立索引。
比如where a=10 and b=100,在a和b列均创建索引,数据库只会使用比较效率的一个索引,然后对结果进行扫描,对比第二个条件。
索引会占用磁盘空间
这个对大部分人来说完全不必理会,第一现在磁盘的成本比以前低了太多了,第二,大部分的项目中,数据量完全达不到需要考虑磁盘空间的地步。