11
回答
mysql 复杂查询第一次很慢,之后很快的问题,如何解决?
开发十年,就只剩下这套Java开发体系了   

    使用的是阿里云服务器,mysql5.7, 每一条sql 间隔一段时间的第一次查询 都很慢,之后的查询都快很多,比如,有些查询,第一次查询 30s,第二次之后3s。

    这种

 

<无标签>
举报
sky_eyes
发帖于7天前 11回/656阅

以下是问题补充:

  • @sky_eyes :我比较想了解的是 第一次查询和第二次查询 效率相差如此巨大这种现象 是怎么来的?有没有解决的方法? 希望第一查询 和之后的查询 效率 更接近 (7天前)
  • @sky_eyes :查询一般都是单表查询,但是经常需要用上 group by ,max、count之类的函数。数据量这个,单表每天增加5w,每次查询条件 至少是 一周的数据,然后经过group by等函数计算 (7天前)
共有11个答案 最后回答: 6天前

有好多数据,字段有好多,一次获取多少数据?要说清楚点啊!

--- 共有 2 条评论 ---
独孤晓林 回复 @sky_eyes : 如果where条件多,group by有字段,做个组合索引,效率会更快。还有表数据多的化,不要先拿其他字段数据。 6天前 回复
sky_eyes就是 整个数据库 的表,的大部分查询都是 第一次查询 比 之后的查询 更耗时 这种现象。 表的字段5-8个,有1-2个索引,经常需要使用 group by, max、count 这些函数 7天前 回复

sql查询不会有变化的,该是多久是多久,你肯定有别的地方没弄明白,就想好多博客写的都是bug一样

--- 共有 1 条评论 ---
sky_eyes那 我应该往哪些方向去查找问题?有什么好建议吗? 7天前 回复

你在datasource 实例化的时候怎么配置的····加了监控 防火墙? 是不是每次重启后第一很慢很慢?

explain 分析一下 如果是分布式系统 尽量SQL 简单化 少关联 以及 SQL各种逻辑计算

尽量程序处理数据

这种情况,第一次查询引起大量的数据load,第二次走了缓存。

个人测试 单表4千万行数据,合理索引,单次SQL 查询1千左右数据,

0.01S

同等条件,不走索引

单次查询 79S

顶部