`
liujianguangaaa
  • 浏览: 231509 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

mysql的默认查询优先还是更新(insert、update、delete)优先关系

阅读更多

查询优先还是更新(insert、update、delete)优先:
MySQL 还允许改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间。改变优先级还可以确保特定类型的查询被处理得更快。
我们首先应该确定应用的类型,判断应用是以查询为主还是以更新为主的,是确保查询效率还是确保更新的效率,决定是查询优先还是更新优先。
下面我们提到的改变调度策略的方法主要是针对Myisam 存储引擎的,对于Innodb 存储引擎,语句的执行是由获得行锁的顺序决定的。
MySQL 的默认的调度策略可用总结如下:
1. 写入操作优先于读取操作。
2. 对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。
3. 对某张数据表的多个读取操作可以同时地进行。
MySQL 提供了几个语句调节符,允许你修改它的调度策略:
1. LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE。
2. HIGH_PRIORITY关键字应用于SELECT和INSERT语句。
3. DELAYED关键字应用于INSERT和REPLACE语句。
如果写入操作是一个LOW_PRIORITY(低优先级)请求,那么系统就不会认为它的优先级高于读取操作。在这种情况下,如果写入者在等待的时候,第二个读取者到达了,那么就允许第二个读取者插到写入者之前。只有在没有其它的读取者的时候,才允许写入者开始操作。这种调度修改可能存在LOW_PRIORITY 写入操作永远被阻塞的情况。
SELECT 查询的HIGH_PRIORITY(高优先级)关键字也类似。它允许SELECT 插入正在等待的写入操作之前,即使在正常情况下写入操作的优先级更高。另外一种影响是,高优先级的SELECT 在正常的SELECT 语句之前执行,因为这些语句会被写入操作阻塞。如果你希望所有支持LOW_PRIORITY 选项的语句都默认地按照低优先级来处理,那么请使用--low-priority-updates 选项来启动服务器。通过使用INSERT HIGH_PRIORITY 来把INSERT 语句提高到正常的写入优先级,可以消除该选项对单个INSERT 语句的影响。

分享到:
评论

相关推荐

    MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解.doc

    MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解.doc

    根据表名及字段,自动生成insert,update,select语句

    首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...

    详解MySQL数据库insert和update语句

    在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之意,就 是对数据...

    MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

    本篇文章是对MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下

    mysql基础知识小结

    ## SQL结构化查询语言,是对关系型数据库进行操作、管理的语言 # DQL数据查询语言 select .......[where|group by|order by|having].... # DML数据操作语言 处理表内的数据 insert update delete # TPL事务...

    MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解.docx

    MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解.pdf

    Upload-Insert-Update-Delete-Image-PHP-MySQL.rar_msql

    upload insert php crud msql

    实验训练3数据增删改操作.docx

    基于实验1创建的汽车用品网上商城数据库Shopping,练习Insert、Delete、TRUNCATE TABLE、Update语句的操作方法,理解单记录插入与批量插入、DELETE与TRUNCATE TABLE语句、单表修改与多表修改的区别。

    Mysql基础学习资料

    Mysql基础sql语法学习,insert update select delete 以及数据库备份

    mysql 查询语句大全及用法10条.docx

    MySQL 是一种常用的关系型数据库管理系统, 提供了强大的 查询语言(SQL)来操作和管理数据库。下面是一些常见的 MySQL 查询语句及其用法: 1. SELECT 语句: - 用法:用于从数据库中检索数据。 - 示例: ...

    mysql 查询语句大全及用法10条.7z

    MySQL 是一种常用的关系型数据库管理系统, 提供了强大的 查询语言(SQL)来操作和管理数据库。下面是一些常见的 MySQL 查询语句及其用法: 1. SELECT 语句: - 用法:用于从数据库中检索数据。 - 示例: ...

    pdo的mysql数据库操作类

    dbtemplate类集合了对数据库的访问操作,主要有以下几个操作: 1. queryrows:返回多行记录 2. queryrow:返回为单条记录 3. queryforint:查询单字段,返回...7. update : 执行一条更新语句. insert / upadate / delete

    MYSQL

    10.5.3 MySQL 怎样优化WHERE子句 10.5.4 MySQL 怎样优化LEFT JOIN 10.5.5 MySQL 怎样优化LIMIT 10.5.6 INSERT查询的速度 10.5.7 UPDATE查询的速度 10.5.8 DELETE查询的速度 10.6 选择一...

    php mysql 判断update之后是否更新了的方法

    php+mysql 执行update语句或insert语句或delete后要判断一下是否更新了数据,需要的朋友可以参考下。

    Mysql读写分离配置说明

    grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉...

    MySQL_CN000.rar_Insert _drop

    SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。...但是,标准的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。

    mysql5.6 闪回插件

    mysql 针对MYSQL delete、update、insert语句误操作(如update忘记加where条件) 利用淘宝的彭立勋开发出的一个flashback插件进行恢复,之前的插件版本只针对MySQL-5.5.18, 无法用于目前主流的5.6版本的。后来...

    MySQL 5.1中文手冊

    5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1. 复制介绍 6.2. 复制实施概述 6.3. 复制...

    MySQL命令大全

     此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序:  mysql> exit  Bye9! 1:使用SHOW语句找出在服务器上当前存在什么...

Global site tag (gtag.js) - Google Analytics