调度优先级分析与MySQL语句更改
写操作优于读操作。
数据表的写入只能一次发生一次,并且写入请求按其到达顺序处理。
数据表的多读操作可以同时进行。
MySQL允许您更改语句调度的优先级。
MySQL提供了一些语句修饰符,允许您修改它的调度策略:
的low_priority关键字用于删除、插入、替换、更新和加载数据。
的high_priority关键词应用于选择和插入语句。
将延迟关键字应用到INSERT和替换语句中。
low_priority和high_priority监管影响存储引擎使用数据表锁(例如MyISAM和记忆),延迟器是用于MyISAM和内存数据表。
更新/插入/数据/替换/删除low_priority } {…
选择/插入high_priotiy } {…
如果写操作是一个low_priority(低优先级)的要求,系统不会认为它的优先级高于读操作。在这种情况下,如果作者在等待,第二读者到达,然后第二读者可以插在作家。只有当有作家可以开始运作,没有其他的读者。在理论上,这种调度的修改表明可能存在一种情况low_priority写操作总是受阻。如果有其他读操作读操作之前,是在进步,新的请求将被插入到low_priority写操作。
的high_priority(高优先级)的选择查询关键词相似,它允许选择要插入等待写操作,即使在正常情况下,写操作的优先级越高。另一个效果是,优先选择在正常执行SELECT语句,因为这些语句的写操作受阻。
如果你想要所有的报表支持low_priority选项按低优先级的默认处理,请使用低优先级更新选项来启动服务器。
注:以上描述是使用表锁的存储引擎,如MyISAM和合并等。