当前位置:  数据库>mysql

浅析mysql 语句的调度优先级及改变

    来源: 互联网  发布时间:2014-10-10

    本文导语:  MySQL的默认的调度策略可用总结如下:· 写入操作优先于读取操作。· 对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。· 对某张数据表的多个读取操作可以同时地进行。MySQL允许你改变语...

MySQL的默认的调度策略可用总结如下:
· 写入操作优先于读取操作。
· 对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。
· 对某张数据表的多个读取操作可以同时地进行。
MySQL允许你改变语句调度的优先级

MySQL提供了几个语句调节符,允许你修改它的调度策略:
· LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE。
· HIGH_PRIORITY关键字应用于SELECT和INSERT语句。
· DELAYED关键字应用于INSERT和REPLACE语句。
LOW_PRIORITY和HIGH_PRIORITY调节符影响那些使用数据表锁的存储引擎(例如MyISAM和MEMORY)。DELAYED调节符作用于MyISAM和MEMORY数据表。
update/insert/load data /replace/delete[low_priority]....
select/insert[high_priotiy]...

如果写入操作是一个LOW_PRIORITY(低优先级)请求,那么系统就不会认为它的优先级高于读取操作。在这种情况下,如果写入者在等待的时候,第二个读取者到达了,那么就允许第二个读取者插到写入者之前。只有在没有其它的读取者的时候,才允许写入者开始操作。理论上,这种调度修改暗示着,可能存在LOW_PRIORITY写入操作永远被阻塞的情况。如果前面的读取操作在进行的过程中一直有其它的读取操作到达,那么新的请求都会插入到LOW_PRIORITY写入操作之前。

SELECT查询的HIGH_PRIORITY(高优先级)关键字也类似。它允许SELECT插入正在等待的写入操作之前,即使在正常情况下写入操作的优先级更高。另外一种影响是,高优先级的SELECT在正常的SELECT语句之前执行,因为这些语句会被写入操作阻塞。

如果你希望所有支持LOW_PRIORITY选项的语句都默认地按照低优先级来处理,那么请使用--low-priority-updates选项来启动服务器
注意:以上说明是针对使用表锁的存蓄引擎而言,比如myisam 和merge 等


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jquery重复提交请求的原因浅析
  • 浅析删除表的几种方法(delete、drop、truncate)
  • 浅析Oracle中char和varchar2的区别
  • 浅析java中print和println的区别
  • 浅析java class 文件
  • 求教,linux内核代码关于网络部分的浅析
  • 浅析如何在tnsnames.ora中配置监听
  • 浅析ThinkPHP中execute和query方法的区别
  • 浅析C#的复制和克隆
  • 浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
  • 浅析MySQL之字符串函数
  • 浅析jquery的作用与优势
  • 浅析SQL server 临时表
  • 技术文章 iis7站长之家
  • 浅析c#中如何在form的webbrowser控件中获得鼠标坐标
  • 浅析SQL语句中GROUP BY的用法
  • PHP强制下载文件方法浅析
  • 浅析打开eclipse出现Incompatible JVM的解决方法
  • 浅析SQL存储过程和事务处理
  • C#访问权限修饰符浅析


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3