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

 更新时间:2013年06月22日 17:31:56   作者:  
本篇文章是对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 等

相关文章

  • 浅谈MySQL之浅入深出页原理

    浅谈MySQL之浅入深出页原理

    首先,我们需要知道,页(Pages)是InnoDB中管理数据的最小单元。Buffer Pool中存的就是一页一页的数据。当我们要查询的数据不在Buffer Pool中时,InnoDB会将记录所在的页整个加载到Buffer Pool中去;同样,将Buffer Pool中的脏页刷入磁盘时,也是按照页为单位刷入磁盘的
    2021-06-06
  • php mysql连接数据库实例

    php mysql连接数据库实例

    这篇文章主要介绍了php mysql连接数据库实例,需要的朋友可以参考下
    2016-09-09
  • MySQL5.0存储过程教程

    MySQL5.0存储过程教程

    Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的。简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”,在此感谢译者陈朋奕的努力.
    2008-04-04
  • 数据库设计工具MySQL Workbench使用教程(超级详细!)

    数据库设计工具MySQL Workbench使用教程(超级详细!)

    MySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能,下面这篇文章主要给大家介绍了关于MySQL设计工具Workbench使用的相关资料,需要的朋友可以参考下
    2023-02-02
  • Mysql5.7.14 linux版密码忘记完美解决办法

    Mysql5.7.14 linux版密码忘记完美解决办法

    这篇文章主要介绍了Mysql5.7.14 linux版密码忘记完美解决办法,需要的朋友可以参考下
    2017-08-08
  • 区分MySQL中的空值(null)和空字符('''')

    区分MySQL中的空值(null)和空字符('''')

    这篇文章主要介绍了如何区分MySQL中的空值(null)和空字符(''),帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    安装和使用percona-toolkit来辅助操作MySQL的基本教程

    这篇文章主要介绍了安装和使用percona-toolkit来辅助操作MySQL的基本教程,这里举了五个最常见的命令用法,需要的朋友可以参考下
    2015-11-11
  • MySQL中慢SQL优化的不同方式介绍

    MySQL中慢SQL优化的不同方式介绍

    慢 SQL 的优化,主要从两个方面考虑,SQL 语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢 SQL吧
    2025-03-03
  • mysql删除表中某一字段重复的记录

    mysql删除表中某一字段重复的记录

    一般大家也许会碰到这个问题,大家可以参考下,讲的比较详细
    2008-07-07
  • 关于sql count(列名)、count(常量)、count(*)之间的区别

    关于sql count(列名)、count(常量)、count(*)之间的区别

    这篇文章主要介绍了关于sql count(列名)、count(常量)、count(*)之间的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论