概述:
交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上。
这个SQL查询关联两个数据表,一个是攻击IP用户表主要是记录IP的信息,如第一次攻击时间,地址,IP等等,一个是IP攻击次数表主要是记录每天IP攻击次数。而需求是获取某天攻击IP信息和次数。(以下SQL语句测试均在测试服务器上上,正式服务器的性能好,查询时间快不少。)
准备:
查看表的行数:
未优化前SQL语句为:
SELECT
attack_ip,
country,
province,
city,
line,
info_update_time

这篇博客分享了一次SQL优化经验,针对一个日益变慢的查询,该查询涉及两个表:攻击IP用户表和IP攻击次数表。未优化时,查询耗时300多秒。通过将内联表查询替换为子查询,逐步筛选条件,最终优化后的查询时间降至0.28秒,性能提升1000多倍。文章强调了先对单表进行条件处理再进行连表查询的重要性。
最低0.47元/天 解锁文章
2109





