mysql 的读写锁与并发控制

mysql 的读写锁与并发控制1.无论何时只要有多个查询在同一时刻修改数据,都会产生并发控制的问题 2.讨论mysql在两个层面,服务器层和存储引擎层,如何并发控制读写 3.举了个mbox邮箱文件的例子,说如果有多个进程同时对m…

mysql 的读写锁与并发控制

attachments-2020-06-mzvZJ4pv5ed85c9b94e03.png

 

1.无论何时只要有多个查询在同一时刻修改数据,都会产生并发控制的问题

2.讨论mysql在两个层面,服务器层和存储引擎层,如何并发控制读写

3.举了个mbox邮箱文件的例子,说如果有多个进程同时对mbox文件写东西,那么在文件的末尾会,交叉混乱的添加,比如进程1写了几行,进程2也写了几行,互相交叉,数据就是错误的了.设计良好的mbox需要加锁,比如进程1锁住了文件,进程2必须等待进程1结束,锁释放才能去写.但是这样的话就不支持并发了,同一时刻只有一个进程可以写数据

4.读取时可能也会有问题,比如一个进程正在读数据,另一个进程同时想去删数据,此时就是不安全的;共享锁叫读锁,排他锁叫写锁

5.读锁是共享的,它不会阻塞其他读锁;写锁是排他的,它会阻塞其他读锁和写锁;读读不互斥,读写互斥,写写互斥

6.mysql每时每刻都在发生锁定,当某用户在修改数据时,会阻塞其他用户读取该数据

7.mysql中有两种锁粒度,锁住整张表和锁住表中一行

 

表锁:当某用户修改数据时,会获取写锁,此时会锁住整张表,其他用户都不能读和写,myisam

行锁:当某用户修改某几行数据,会获取写锁,此时只是锁住那几行,那几行其他用户不能读和写;其他行没有影响,但是管理锁会消耗资源,innodb

 

8.使用命令来锁表
unlock tables 解锁所有行
lock tables 表名 read或者write

 

测试读写/写读互斥

1.增加读锁

attachments-2020-06-vMSvDiuG5ed99afb2ab95.png

读数据没影响,写数据会被阻塞住

attachments-2020-06-xZOE9WaA5ed99b0211f13.png

2.增加写锁

attachments-2020-06-RFgqTmEc5ed99b087d7cc.png

读和写都会被阻塞

attachments-2020-06-mloaHyr05ed99b0e1d36f.png

 

attachments-2020-06-t3EJE8hb5ed85cec9adbc.jpg

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8065.html

(0)
上一篇 2023-03-08
下一篇 2023-03-08

相关推荐

  • Python List中的最后一个元素

    Python List中的最后一个元素在Python中,List是一种有序的数据结构,它可以存储多个元素,这些元素可以是不同的数据类型,例如整数、字符串、布尔值、浮点数等等。可以将List看作是一个数组,它支持索引、切片、排序等常见操作。

    2024-01-02
    66
  • Python中的实例(instance)及其用法

    Python中的实例(instance)及其用法在Python中,我们可以使用类定义对象,并在定义后创建它们的实例。一个类可以看作是一个蓝图,而实例是蓝图的实际实现。下面是一个简单的示例:

    2024-01-07
    68
  • insert into 大量数据_insert select 太慢

    insert into 大量数据_insert select 太慢问题: MySQL 一次 insert 刷几次盘? 实验: 工具:pt-tools 先检查各个刷盘参数 2. 开启 pt-tools! 3. 在 MySQL 中,任意表插入一行 4. 观察 pt-i…

    2023-02-01
    138
  • 如何查看conda版本

    如何查看conda版本Conda是一个开源的软件包管理系统和环境管理系统,它可以在各种操作系统上管理、部署、运行各种不同版本的软件包和依赖项。由于Conda更新频繁,我们需要获取当前安装的Conda版本信息和最新的Conda版本信息。

    2024-05-04
    15
  • 共享的注意事项及解决方法「建议收藏」

    共享的注意事项及解决方法「建议收藏」2018年,文件共享服务项目DropBox使西北大学在2年的时间内“浏览了与新项目文件夹有关的数据信息”——遮盖了1000所高校中的约四十万名客户。那么文件共享的注意事项及解决方法有哪些呢? 该类电…

    2023-04-11
    108
  • sqlserver学习

    sqlserver学习一、什么是关系型和非关系型数据库,两者都包含那种数据库 1、关系型数据库 关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。 常见关系型数据库管理系统(ORDBMS

    2023-06-08
    95
  • Win10安装Oracle 11g后解决sqldeveloper缺少快捷方式的问题「建议收藏」

    Win10安装Oracle 11g后解决sqldeveloper缺少快捷方式的问题「建议收藏」在windows 10 64位操作系统中安装Oracle win64 11g R2数据库软件,启动SQL Developer却提示缺少快捷方式,具体如下: 网上查阅参考了一些网友的解决方案,记录如下:

    2023-02-11
    108
  • MongoDB(一):NoSQL简介、MongoDB简介「建议收藏」

    MongoDB(一):NoSQL简介、MongoDB简介「建议收藏」1. NoSQL简介 1.1 什么是NoSQL NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库

    2022-12-21
    101

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注