【问题标题】:How to prioritise certain queries in MySQL?如何在 MySQL 中优先考虑某些查询?
【发布时间】:2012-05-20 04:26:21
【问题描述】:

在高度竞争的 MySQL 数据库中,我有大量的后台读取和写入,而用户读取的次数要少得多 - 有没有办法将某些查询(用户查询)标记为高优先级,以便它们优先于后台查询?我希望用户响应度高,但并不真正关心后台查询。

谢谢

【问题讨论】:

  • 您使用的是哪个存储引擎?创新数据库? MyISAM?
  • InnoDB 但如果有充分的理由我可以切换..

标签: mysql optimization


【解决方案1】:

MySQl 支持insert delayed 用于延迟inserts 和low_priority 用于updates。对于您的用户阅读,select 上有 high_priority 扩展名。如果您使用的是 MyISAM 存储引擎,则有相关的(但不同的)concurrent inserts 功能。

【讨论】:

  • 另一方面,SELECT 支持 HIGH_PRIORITY 关键字,它赋予选择与更新相同的优先级。
  • @Romuald:显然,正如您评论的那样,我正在编辑我的答案。 :-)
  • 如果没有高优先级选择所有低优先级插入和更新只会以正常优先级运行,我的想法是否正确?
  • 另外,高优先级的选择会覆盖低优先级的更新吗?谢谢
  • @Malcolm:链接的文档表明低优先级的东西有开销,所以它不是免费的。关于你的第二个问题,再次推迟到文档,但我很确定这就是重点,是的。我认为即使是普通的选择也不会受到低优先级更新的影响(例如),并且高优先级的选择比其他语句更积极地安排,包括其他选择。了解这将如何影响您的架构的唯一方法是试一试,但您至少要告诉 DBMS 认为什么是优先事项。
猜你喜欢
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 2021-10-28
  • 2021-07-13
  • 1970-01-01
  • 2019-09-20
  • 2012-05-28
  • 2023-03-15
相关资源
最近更新 更多