索引的缺点
索引在提高查询速度,过滤大量不符合条件的数据行时,不可避免地会带来一些其他的问题。那么问题有哪些呢?
索引需要额外的存储空间
一般而言,一个表的所有索引的大小约是表本身存储的数据大小的二至三倍或者更多。
使用索引不一定是最优的选择
是否需要索引应该根据具体情况而定,据相关测试,索引在中型表中效率最高,而相较于数据量较少,或数据量较多的大表时并不理想。小表查询使用索引时,回表操作反而降低了查询效率,全表扫描反而更加高效。而对于大表而言,当数据特别多时,使用索引并不能显著提高查询速度,因为随着表数据的增长,所对应的索引页也会变得更大,从而导致建立和使用索引的代价随之增长。所以我们一般对于的大表使用分区分表技术。
使用索引会产生额外的开销
我们知道各个索引是区别于数据表的一张==“另类的表” , 那么当数据表进行增删改==等表数据变更操作时,对应该表的所有索引也需要进行同步更新,自然会造成额外的开销。