(MariaDB/MySQL)MyISAM存储引擎读、写操作的优先级

MariaDB/MySQL中使用表级锁的存储引擎(例如MyISAM、Aria(MariaDB对MyISAM引擎的改进,前身是MyISAM))在读(select)、写操作(insert、delete、update、replace)上有优先级的概念。默认情况下,写操作的优先级高于读操作。注:不适用于InnoDB存储引擎。

以MyISAM为例。当有进程正在写MyISAM表的时候,又有新的读操作、写操作出现,则会先执行完所有的写操作,等写完后才会读表。实际上并非总是先执行完所有写操作,因为有系统变量max_write_lock_count控制最大写锁数量,当这些数量的写操作完成后会转为执行读操作。

所以,INSERT、LOAD DATA INFILE、UPDATE、REPLACE、DELETE语句都有LOW_PRIORITY关键字,用来降低对MyISAM存储引擎的写操作优先级,使得MariaDB先执行完所有的读操作后再执行写操作。而SELECT语句有HIGH_PRIORITY关键字,用来提高读操作的优先级。除了这两个关键字,还可以设置系统变量low_priority_updates=on来降低写操作优先级。

唯一需要注意的是,INSERT语句不仅有LOW_PRIORITY,也有HIGH_PRIORITY。当使用INSERT HIGH_PRIORITY语句时,表示禁用INSERT的并发插入行为。

回到Linux系列文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

回到网站架构系列文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7576137.html


回到数据库系列文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7586194.html


转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/8907252.html

注:若您觉得这篇文章还不错请点击右下角推荐,您的支持能激发作者更大的写作热情,非常感谢!

原文地址:https://www.cnblogs.com/f-ck-need-u/p/8907252.html

时间: 2024-08-08 20:41:57

(MariaDB/MySQL)MyISAM存储引擎读、写操作的优先级的相关文章

Mysql更换MyISAM存储引擎为Innodb的操作记录

一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看: 1)查看mysql是否安装了innodb插件.通过下面的命令结果可知,已经安装了innodb插件. mysql> show plugins; +------------+--------+----------------+---------+---------+ | Name | Status | Type | Library | License | +------------+--------+----------------

[转帖]mysql常用存储引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介绍与如何选择

mysql常用存储引擎(InnoDB.MyISAM.MEMORY.MERGE.ARCHIVE)介绍与如何选择原创web洋仔 发布于2018-06-28 15:58:34 阅读数 1063 收藏展开 https://blog.csdn.net/CSDN___LYY/article/details/80844606 一:前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的

mysql InnoDB 和 Myisam 存储引擎的区别

1. InnoDB 支持事物,Myisam 不支持事物 2. InnoDB 是行级锁,Myisam 表级锁 3. InnoDB 不支持全文索引,Myisam 支持全文索引,但不支持外键 4. InnoDB 在磁盘上是两个文件,Myisam 是三个文件 5 myISAM管理非事务表.它提供高速存储和检索,以及全文搜索能力.如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择 6InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持.如果应用中需要执行大量的INSER

MySQL数据库MyISAM存储引擎转为Innodb

MySQL数据库MyISAM存储引擎转为Innodb 之前公司的数据库存储引擎全部为MyISAM,数据量和访问量都不是很大,所以一直都没什么问题.但是最近出现了MySQL数据表经常被锁的情况,直接导致了用户连接网站时超时而返回502,于是决定把存储引擎转为Innodb的,以解决MyISAM的表锁问题.下面将操作步骤记录一下. 1.导出centos数据库的表结构 mysqldump -d -uxxx -p centos > centos_table.sql 其中-d参数表示不导出数据,只导出表结构

mysql innodb存储引擎和myisam引擎

InnoDb存储引擎面向在线事务处理,其特点是行锁设计.支持外键.并支持Oricle似得非锁定读(所谓非锁定读是如果数据库实例读取的行正在进行更新或删除操作当前读取不会等待当前锁的释放而是读取当前行的快照)InnoDb引擎的表保存在以ibd的文件中,innodb通过使用多版本并发控制来获得高并发性,Innodb采用了聚集的方式即每张表的存储都按主键的顺序存放,如果没有显示的指定主键Innodb存储引擎会为每一行生成一个6字节的rowid并以此作为主键 Myisam存储引擎不支持事务,表锁,支持全

MySQL之MyISAM存储引擎压缩表

一.介绍 MySQL的MyISAM存储引擎支持压缩表空间,压缩后的表空间会减少,但是压缩后的表是只读的,不能插入和更新数据,如果需要更新,则需要解压后更新,再压缩 . 二.案例 1.创建数据库,创建表并指定存储引擎为MyISAM,字符集为utf8 create database myisamdb; use myisamdb; create table myisam (id int unsigned auto_increment primary key, name varchar(20) not

Mysql ==》 存储引擎

一.什么是存储引擎? mysql中建立的表==>文件夹 库中建立的表==>文件 现实生活中我们用来存储数据的文件应该有不同的类型: 比如: 存文本用的txt类型,存表格用的excel,存图片png等. 数据库中的表也应该有不同的类型,表的类型不用,回对应mysql不同的存取机制,表类型又称为存储引擎. 存储引擎说白了就是如何存储数据?如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法,因为关系数据库中 数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型

MySQL之存储引擎(Day39)

一 什么是存储引擎 mysql中建立的库=====>文件夹 库中建立的表=====>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型

MySQL三:存储引擎

阅读目录 一 什么是存储引擎 二 mysql支持的存储引擎 三 使用存储引擎 一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是