优化问题请教讨论
sql吧
全部回复
仅看楼主
level 1
奶油喧嚣 楼主
问题已暂时解决,但是仍一头雾水,请大佬们不吝赐教。
情况:有一张33w条数据的表,照理查询不会很慢,但在正式服务器上查询很慢(有几条语句甚至要执行40s以上),而同样大的数据在测试库以及云数据库上查询就很快。刚开始以为索引没加好,sql语句里涉及3个表和好几个检索条件,无脑上了联合索引,的确变快了,但是程序里检索条件是mybatis拼接的,条件不同组合时影响索引命中,所以这个方案不可取。我同事提出说可能是碎片影响了速度,使用show table status命令果然看到data_free很大接近2000w,使用optimize命令优化后降为200w,但查询仍然很慢。最后同事死马当活马医,重新建了新表,把数据插进新表,联合索引也去掉了只保留了几条单字段索引,神奇的是查询变快了。
现在就真的好奇,最后建新表到底是有啥门道,从结果上看这个真有效,或者一开始正式服务器和测试服务器比就是有点问题的,重建表似乎就解决了这个问题
2022年10月09日 13点10分 1
1