mysql - 当我执行长查询时,Mysql 是否需要很长时间才能响应?
问题描述
当我执行更多 MySQL 连接查询时,其中一个查询需要很长时间才能响应并进入进程列表。然后我执行
SHOW PROCESSLIST
询问。它将状态显示为“正在发送数据”,并且在 Rows_examined 中为我的查询显示了一个非常大的数字(757497478)。我们如何解决这个问题?
解决方案
发送大量信息过去和将来都非常耗时。您可以改进硬件以确保它可以更快地处理大数据处理/发送,或者您可以将查询分解成块。如果不是一次选择所有信息,而是选择首先返回的行数,则使用limit
子句将其分解为分区并调用每个分区。这样,您的应用程序就不必等待发送整个答案,而是将其作为较小的批次加载,并在等待第二批时开始处理第一批。这个问题没有解决方案,因为超过一定限度你会遇到实际无穷大,但是有办法更好地管理这个问题。此外,您可以查看您的查询,看看您是否需要您的所有表格join
或者其中一些表在那里是不必要的。
推荐阅读
- php - 它有时会使用 HLS 播放视频。例如,它播放 3 小时。10小时不播放视频
- javascript - 根据条件自动打开模态
- sql - 如何使用 CASCADE DELETE 删除所有租户数据
- python - Python:从排序数组中采样 n 个数字,确保它们彼此尽可能远
- active-directory - 我可以在 LDAP/radius/Tacas/Active Directory 中自定义身份验证吗
- xml - XSL FO 的两列布局流程
- arrays - Modelsim VHDL 数组初始化给出警告 (vcom-1320)
- python - 无法解决 ValueError: 层序贯_1 的输入 0 与层不兼容
- c# - 如何使用 Xamarin 表单创建功能发现
- c# - 在 Unity 3D 中,是否有理解何时引用变量以及何时将其复制到新变量的一般规则?