关于索引字段

2023-10-22 15:17:55 浏览数 (1)

关于索引字段

问题描述

关于删除字段是否适合建索引

案例重现

前段时间公司系统的一个查询接口非常缓慢,前端页面查询的时候都超时报500 了,于是去分析了sql,其实sql 很简单,就是两个表的关联查询,但是主表的数据量相对较大,有30W,其中标记为删除的有25W,正常的数据有5W,而我的sql,就是要查正常的数据再过滤一些其他条件,然后我试了SELECT * FROM settlement_list where delete_status = 1 ,速度非常慢,23s 左右,不带delete_status 也是很慢 20多s,于是看了下 settlement_list 的索引,其他的索引都没问题,然后我就在delete_status 字段也建了个索引,建了以后再查询SELECT * FROM settlement_list where delete_status = 1 好家伙,一下就到了0.36s,这速度是一个质的飞跃啊,于是我就开始纠结了,删除字段建索引,会不会被鄙视啊,理论上小基数字段不要建索引,但是实际情况,建了索引确实速度提高了啊,于是我还是提交了代码,果不其然被同事发现了,于是开始了掰扯,把索引删掉后,速度一下又到了二十几s,加上索引速度变成1s以内,最后同事得出的结论是,确实找不到反驳的理由,加了索引速度是真的提升了,也许理论和实践还是不一样。

0 人点赞