写入操作因建索引变慢时,是否应为quote表的increment_id列创建索引?
结论:应该为
increment_id创建唯一索引 读取收益远大于写入损耗
你的表已有10万+数据且持续增长,无索引时执行select * from quote where increment_id='123'会触发全表扫描,数据量越大查询耗时越长。唯一索引能将这类查询的时间复杂度从O(n)降至O(logn),查询效率提升非常显著。唯一索引的额外价值
既然increment_id是唯一值,创建唯一索引还能强制保证该字段的唯一性,避免重复插入相同increment_id的数据,从数据库层面规避数据一致性问题。写入损耗可控
插入时更新索引确实会有额外开销,但在你的场景中,数据插入后会频繁基于increment_id做读取查询,这种情况下读取性能的提升完全能覆盖写入的微小损耗。除非你的业务是写入量极高且几乎不通过increment_id查询,否则没必要纠结这点开销。
内容的提问来源于stack exchange,提问作者amitshree
相关产品推荐
相关产品推荐

