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

时间:2024-01-24 21:27:35 

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,语句,调度优先级
0
投稿

猜你喜欢

  • go语言代码生成器code generator使用示例介绍

    2024-05-21 10:19:29
  • 利用mergeAttributes设置name属性

    2009-12-12 18:48:00
  • PHP根据IP判断地区名信息的示例代码

    2023-09-10 14:05:55
  • 手动安装Anaconda环境变量的实现教程

    2023-12-09 07:10:27
  • java连接mysql底层封装详解

    2024-01-26 17:31:19
  • python中数据爬虫requests库使用方法详解

    2022-04-01 05:47:11
  • python中OrderedDict的使用方法详解

    2023-08-26 14:00:40
  • 以PHP代码为实例详解RabbitMQ消息队列中间件的6种模式

    2023-06-08 12:15:53
  • php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密

    2023-11-21 14:36:02
  • vue-cli中使用高德地图的方法示例

    2024-04-27 16:09:39
  • 19个ASP编程基础典型代码

    2008-10-23 15:46:00
  • Python实现通过文件路径获取文件hash值的方法

    2023-10-27 21:41:20
  • js实现rem自动匹配计算font-size的示例

    2023-08-22 11:02:33
  • Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】

    2021-09-16 17:17:44
  • Python爬虫Scrapy框架CrawlSpider原理及使用案例

    2023-12-23 07:41:55
  • Tensorflow 合并通道及加载子模型的方法

    2023-08-10 05:36:54
  • pytorch 彩色图像转灰度图像实例

    2023-08-02 17:28:37
  • Python中获取对象信息的方法

    2021-04-04 09:08:22
  • Python json模块dumps、loads操作示例

    2023-01-03 20:16:29
  • Python 控制终端输出文字的实例

    2021-10-23 21:30:56
  • asp之家 网络编程 m.aspxhome.com