Mysql中的低优先级查询

时间:2014-07-11 18:22:06

标签: mysql

是否可以为MySQL中的查询分配较低的优先级,类似于命令行上的nice命令(在Linux中)?如果没有,是否有数据库可以做类似的事情?

1 个答案:

答案 0 :(得分:13)

您可以在查询中使用LOW_PRIORITYHIGH_PRIORITY,具体取决于您执行的查询类型:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] INTO ...
SELECT [HIGH_PRIORITY] * FROM ...
UPDATE [LOW_PRIORITY] table ...

来自INSERT查询的Mysql 5.7 documentation

  

如果使用LOW_PRIORITY关键字,则INSERT的执行会延迟,直到没有其他客户端从表中读取。这包括在现有客户端正在读取时开始读取的其他客户端,以及INSERT LOW_PRIORITY语句正在等待。因此,发出INSERT LOW_PRIORITY语句的客户端可能需要等待很长时间。

但也有人说:

  

这仅影响仅使用表级锁定的存储引擎(例如MyISAM,MEMORY和MERGE)

因此,您无法将此功能与innodb一起使用,除非您想使用LOCK_TABLES,从而降低其性能。

相关问题