是否可以为MySQL中的查询分配较低的优先级,类似于命令行上的nice
命令(在Linux中)?如果没有,是否有数据库可以做类似的事情?
答案 0 :(得分:13)
您可以在查询中使用LOW_PRIORITY
或HIGH_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
,从而降低其性能。