做一个需求的开发,算是个改造吧。
集成测试过程中,在生产想要找之前做过的数据,执行了以下sql。
select t.* from order_service_log t where t.service_code = '产品过户' limit 10
当现场的一个测试头头在群里截图@全体,问谁执行了这个sql时,顿时感觉大事不妙。
想起执行这个sql时,貌似好几分钟都没执行完。
!!!不会是拉垮了整个生产数据库吧!!!
然后就是如此。
单看这个sql,并没有什么问题,感觉对效率没太大影响。
但一旦service_code这个字段不是索引,且这个日志表数量达30万+,这条简单的sql就不是这么简单了。
但归根到底,还是日记表定时需要清数据。
而我们书写查询语句时,也要注意,最好用带有索引的条件去查询,避免用t.*,以及用上时间限制。
还是受职场磋磨地不够多啊!
网友评论