gpt4 book ai didi

MySQL 查询正在等待其他查询完成

转载 作者:行者123 更新时间:2023-11-29 11:34:36 25 4
gpt4 key购买 nike

我们有 30-40 个不同的 Python 和 PHP 项目,每天都会在 MySQL DB 中更新、插入和选择超过 100 万行数据。

目前我们的表使用 InnoDB 引擎。

问题:当几乎所有项目都在运行并且大量查询在数据库中处理时,我们的 MySQL 出现了峰值。有些主查询对于尽快完成非常重要(高优先级),而有些查询可以等待主查询完成(较低优先级)。但当它们并发到 MySQL 时,会导致主查询等待优先级较低的查询完成。

问题:

  1. 是否有可能在执行主查询之前释放表中的所有锁定(以便它们可以尽快完成)?或者如果有帮助的话创建锁?

  2. 我们可以在自动开始执行主查询时暂停优先级较低的查询执行吗?

  3. 可以在查询帮助中使用 HIGH_PRIORITY 和 LOW_PRIORITY 吗?

  4. MySQL 中是否有一些可以提供帮助的配置?

  5. 将表更改为 MyISAM 或其他数据库引擎有帮助吗?

让我知道你的想法和想法。

最佳答案

  1. 没有。您可以尝试升级到 MySQL 5.7,因为如果事务不互相干扰,它允许在表内进行并行复制。
  2. 参见http://dev.mysql.com/doc/refman/5.7/en/lock-tables.html关于低优先级如何不起作用。
  3. 参见#2。
  4. 最好看看您在应用程序中如何进行锁定 - 您是锁定行、进行更改、快速解锁还是代码以悠闲的方式执行此操作?
  5. MyISAM 在表级别而不是行级别锁定,并且 MyISAM 不支持事务(这可能就是您锁定记录的原因)。

关于MySQL 查询正在等待其他查询完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36835590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com