首页 > 解决方案 > 当我执行长查询时,Mysql 是否需要很长时间才能响应?

问题描述

当我执行更多 MySQL 连接查询时,其中一个查询需要很长时间才能响应并进入进程列表。然后我执行

SHOW PROCESSLIST

询问。它将状态显示为“正在发送数据”,并且在 Rows_examined 中为我的查询显示了一个非常大的数字(757497478)。我们如何解决这个问题?

标签: mysql

解决方案


发送大量信息过去和将来都非常耗时。您可以改进硬件以确保它可以更快地处理大数据处理/发送,或者您可以将查询分解成块。如果不是一次选择所有信息,而是选择首先返回的行数,则使用limit子句将其分解为分区并调用每个分区。这样,您的应用程序就不必等待发送整个答案,而是将其作为较小的批次加载,并在等待第二批时开始处理第一批。这个问题没有解决方案,因为超过一定限度你会遇到实际无穷大,但是有办法更好地管理这个问题。此外,您可以查看您的查询,看看您是否需要您的所有表格join或者其中一些表在那里是不必要的。


推荐阅读