Mysql 将查询限制为18000行。但每次运行时都要跟踪执行时间,并保持最近50次执行的移动平均值。如果该平均值小于4.5s,则向查询大小添加1%并重置移动平均值。所以现在你的应用程序每次请求18180行。50次迭代后,如果移动平均值低于4.5s,则再次添加1%
如果你的移动平均线超过4.75秒,减去1% 随着时间的推移,此方法应收敛到针对特定查询/环境等的优化N行解决方案,并应在条件发生变化时(例如,高并发与低并发)进行调整(缓慢但稳定) 只要一个--擦掉它,两个--更多的东西…Mysql 将查询限制为18000行。但每次运行时都要跟踪执行时间,并保持最近50次执行的移动平均值。如果该平均值小于4.5s,则向查询大小添加1%并重置移动平均值。所以现在你的应用程序每次请求18180行。50次迭代后,如果移动平均值低于4.5s,则再次添加1%,mysql,sql,database,Mysql,Sql,Database,如果你的移动平均线超过4.75秒,减去1% 随着时间的推移,此方法应收敛到针对特定查询/环境等的优化N行解决方案,并应在条件发生变化时(例如,高并发与低并发)进行调整(缓慢但稳定) 只要一个--擦掉它,两个--更多的东西… 作为一名DBA,我必须说……任何查询花费超过5秒的时间应该是非常罕见的。特别是,如果它是一个经常运行且被前端应用程序使用的查询,那么它绝对不应该运行5秒钟。如果确实有一个面向用户的查询无法在5秒钟内完成,这表明数据库设计需要改进 Jonathan VM的绿条定律报告我曾在一家
eeee。。。仍然很模糊,你能放一些示例数据/输出吗?你会用什么主机编程语言来查询mysql?这是重复的吗?要“获得尽可能多的行”,您必须分析实际查询。在你发布你正在使用的实际查询之前,我们只能猜测皇帝鼻子的长度。这个问题似乎很清楚,但不清楚的是你为什么要检索这些信息?您是否试图突出显示一天中数据库运行速度比其他数据库慢的时段?
declare @d1 datetime2(7); set @d1=getdate();
select c1,c2 from t1 where (datediff(ss,@d1,getdate())<5)