mysql 复杂查询第一次很慢,之后很快的问题,如何解决?

sky_eyes 发布于 10/11 14:16
阅读 822
收藏 0

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

    这种

 

以下是问题补充:

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

因为第二次走的缓存

sky_eyes
sky_eyes
也就是说 第一次查询是 真实的效率值?
0
独孤晓林

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

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

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

sky_eyes
sky_eyes
那 我应该往哪些方向去查找问题?有什么好建议吗?
0
skhuhu
skhuhu

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

0
银杏果果
银杏果果

快都要3s,这种设计是否有问题呢?

0
乌龟壳
乌龟壳

内存太小

sql可能需要优化

0
cullenx
cullenx

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

尽量程序处理数据

0
lianglianglee
lianglianglee

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

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

0.01S

同等条件,不走索引

单次查询 79S

0
开源中国首席吃不饱
开源中国首席吃不饱

要排除连接池新建了解的影响,最好先做个其他查询

返回顶部
顶部