23 条回复  ·  301 次点击
redog 小成 2024-9-5 12:02:29
表里有主键吗?把主键去掉,建立一个,按 is_collect ,pro_removal_time ,id 的 UNIQUE 索引,这样应该会形成聚簇索引,第一次创建时因为你已经有 200W 的记录了,会对这 200W 记录重新物理排序,所以会很慢,另外就是插入和更改 is_collect 时会慢一点,但这个数据量来看应该不会有太大感知。
好处是会按上面的顺序物理排序,这样你前面的条件一出,回表取值的速度会大大加快,捞数据是顺序读取的。
另外一种就是建一个覆盖索引,按你之前的条件,前面必须是 is_collect ,pro_removal_time ,id ,然后继续跟所需要的业务字段,那个求和的也要算进来。
SDYY 小成 2024-9-5 12:12:37
一个月前的数据还会修改吗,先缓存历史数据,最新数据再计算后汇总
wxf666 小成 2024-9-5 13:49:03
@xuanbg #25 现在千元消费级固态,不是都支持 100W 随机查找/秒 了吗?

换句话说,即使服务器内存只有几百 MB ,MySQL 完全用不了缓存,所有读写都走固态 IO ,

随机查找 50W 行,也应该 0.5 秒就能搞定?

https://i.imgur.com/F29pmQ6.png https://i.imgur.com/F29pmQ6.png

https://i.imgur.com/uB205yf.jpeg
dode 小成 2024-9-12 09:22:00
如果没有固态硬盘,换成固态硬盘基本可以解决问题
123
返回顶部