`
xuzhfa123
  • 浏览: 118646 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MySQL锁表概述

阅读更多
1、对于MySQL来说,有三种锁的级别:页级、表级、行级
   页级的典型代表引擎为BDB。
   表级的典型代表引擎为 MyISAM,MEMORY以及很久以前的ISAM。
   行级的典型代表引擎为INNODB。

2、我们实际应用中用的最多的就是行锁
   行级锁的优点如下:
   1)、当很多连接分别进行不同的查询时减小LOCK状态。
   2)、如果出现异常,可以减少数据的丢失。因为一次可以只回滚一行或者几行少量的数据。
   行级锁的缺点如下:
   1)、比页级锁和表级锁要占用更多的内存。
   2)、进行查询时比页级锁和表级锁需要的I/O要多,所以我们经常把行级锁用在写操作而不是读操作。
3)、容易出现死锁。

3、 MySQL用写队列和读队列来实现对数据库的写和读操作
    对于写锁定如下:
    1)、如果表没有加锁,那么对其加写锁定。
    2)、否则,那么把请求放入写锁队列中。
    对于读锁定如下:
    1)、如果表没有加写锁,那么加一个读锁。
    2)、否则,那么把请求放到读锁队列中。
当然我们可以分别用low_priority 以及high_priority在写和读操作上来改变这些行为。
4、下面我来一个简单的例子解释上面的说法
我们来运行一个时间很长的查询
1)、客户端1:
mysql> select count(*) from content group by content;


客户端2:
mysql> update content set content = ‘I love you’ where id = 444;
Query OK, 1 row affected (30.68 sec)
Rows matched: 1  Changed: 1  Warnings: 0

用了半分钟。
2)、我们现在终止客户端1。
此时客户端2:
mysql> update content set content = ‘I hate you’ where id = 444;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

仅仅用了20毫秒。

这个例子很好的说明了读写队列的运行。
对于1中的客户端1,此时表没有加锁,当然也没有加写锁了,那么此时客户端1对表加了一个读锁。
对于1中的客户端2,此时因为表有一个读锁,所以把UPDATE请求放到写锁定队列中。
当读锁释放的时候,也就是SHOW PROCESSLIST中STATUS 为COPY TO TMP TABLE的时候,UPDATE操作开始执行。

5、可以在REPLICATION中对MASTER 和SLAVE运用不同的锁定使系统达到最佳的性能
当然这个前提是SQL语句都是最优的。
分享到:
评论

相关推荐

    MYSQL 解锁与锁表介绍

    MySQL锁概述   相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁...

    MYSQL锁机制

    #### 一、MySQL锁机制概述 MySQL中的锁机制是数据库管理系统用于控制并发事务对数据资源访问的关键技术之一。合理地管理和利用锁机制能够有效地防止数据不一致性和提高系统的并发处理能力。MySQL支持多种锁类型,...

    2021年MySQL高级教程视频.rar

    12.MySQL高级锁锁的概述及分类.avi 13.MySQL高级锁MySQL对锁的支持.avi 14.MySQL高级锁MyISAM表锁读锁.avi 15.MySQL高级锁MyISAM表锁写锁.avi 16.MySQL高级锁MyISAM表锁小结.avi 17.MySQL高级锁MyISAM表锁查看锁争用...

    mysql锁解决并发问题共7页.pdf.zip

    MySQL数据库在处理高并发场景时,经常会...以上只是MySQL锁机制的概述,实际应用中需要根据业务需求和事务隔离级别来选择合适的锁策略。在处理并发问题时,理解并熟练运用这些锁机制,可以有效提升系统的稳定性和性能。

    Mysql高级:锁

    主要二个主题:锁机制和全局机制 锁机制:概述,三锁:表锁和行锁,页锁

    mysql理论知识,索引,锁等知识点的概述

    mysql理论知识,索引,锁等知识点的概述

    mysql高级视频教程百度云(2019).txt

    53.MySQL高级_数据库锁理论概述.avi 52.MySQL高级_全局查询日志.avi 51.MySQL高级_用Show Profile进行sql分析.avi 50.MySQL高级_批量插入数据脚本.avi 49.MySQL高级_慢查询日志.avi 48.MySQL高级_为排序...

    MySQL基础与实例教程教学进度表.doc

    这份"MySQL基础与实例教程教学进度表"提供了新乡学院2019-2020学年第一学期“数据库应用开发实训”课程的教学计划。该课程由孔祥盛老师主讲,针对2017级计算机信息管理1班和2班的学生,采用的教材是孔祥盛主编的...

    MYSQL

    11 MySQL 基准套件 12 MySQL 实用程序 12.1 各种 MySQL 程序概述 12.2 管理一个 MySQL 服务器 12.3 从 MySQL 数据库和表中倒出(dump)结构和数据 12.4 从文本文件导入数据 12.5 MySQL ...

    mysql索引和锁机制ppt介绍

    **锁机制概述:** MySQL中的锁机制主要用于解决并发操作中的数据一致性问题,主要包括行锁、表锁等多种锁类型。 **行锁:** - 行锁是在事务处理中对特定数据行加锁,减少锁的竞争,提高并发性能。 - InnoDB存储引擎...

    windows版mysql安装包-mysql5-mysql-5.5.zip

    1. **MySQL 5.5概述** MySQL 5.5是MySQL的一个重大版本更新,于2010年发布,引入了诸多性能优化和新特性。其中,InnoDB存储引擎得到显著增强,支持更多的并发连接,提高了查询速度,并引入了压缩表功能以节省磁盘...

    MySQL中文参考手册.chm

    11 MySQL 基准套件 12 MySQL 实用程序 12.1 各种 MySQL 程序概述 12.2 管理一个 MySQL 服务器 12.3 从 MySQL 数据库和表中倒出(dump)结构和数据 12.4 从文本文件导入数据 12.5 ...

    MySQL技术内幕 InnoDB存储引擎.pdf

    最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。 1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 ...

    MySQL中文参考手册

    + 7.1.5 数据库,表,索引,列和别名的命名 # 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 + 7.3.1 列类型的存储要求 + 7.3.5 数字类型 + 7.3.6 日期和时间类型 # 7.3.6.1 问题和日期类型 # ...

    尚硅谷Java视频教程_MySQL高级视频

    尚硅谷_MySQL高级_数据库锁理论概述 · 54.尚硅谷_MySQL高级_读锁案例讲解 · 55.尚硅谷_MySQL高级_读锁案例讲解2 · 56.尚硅谷_MySQL高级_行锁理论 · 57.尚硅谷_MySQL高级_行锁案例讲解 · 58.尚硅谷_MySQL...

    mysql5.6安装包 mysql5.6官网下载的

    ### MySQL 5.6概述 MySQL是一种流行的开源关系型数据库管理系统(RDBMS),被广泛用于各种应用场景中,包括网站开发、应用服务器后端等。MySQL 5.6是该系列中的一个稳定版本,提供了许多增强功能,以提高性能和可靠...

    MySQL 数据库锁定机制

    - **意向共享锁**: 表示事务想要对某个表加共享锁。 - **意向排他锁**: 表示事务想要对某个表加排他锁。 **3. InnoDB 行锁优化建议** - **索引使用**: 尽可能通过索引进行数据检索,以避免升级为表级锁。 - **索引...

    mysql5.1.49

    1. **MySQL概述**: - MySQL是一个ACID(原子性、一致性、隔离性、持久性)兼容的数据库系统,支持SQL标准,并提供了多种存储引擎,如InnoDB、MyISAM、MEMORY等。 - 版本5.1是MySQL的一个里程碑,它引入了许多新...

Global site tag (gtag.js) - Google Analytics