在数据库的锁机制中介绍过,数据的锁主要用来保证数据的一致性的,数据库的锁从锁定的粒度上可以分为表级锁、行级锁和页级锁。在我的博客中重点介绍过MySQL数据库的行级锁。这篇文章主要来介绍一下MySQL数据库中的表级锁。

本文提到的读锁和写锁都是MySQL数据库的MyISAM引擎支持的表锁的。而对于行级锁的共享读锁和互斥写锁请阅读MySQL中的共享锁与排他锁。我习惯在描述表锁的时候按照读写来区分,在表述行锁的时候按照共享和互斥来区分。其实无论是表锁还是行锁。共享锁指的就是读锁!互斥锁、排他锁、独占锁值得都是写锁。

重点知识回顾

MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB 存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

MyISAM表锁

MyISAM 存储引擎只支持表锁,MySQL 的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。

对于读操作,可以增加读锁,一旦数据表被加上读锁,其他请求可以对该表再次增加读锁,但是不能增加写锁。(当一个请求在读数据时࿰

mysql 加写锁_MySQL中的读锁和写锁相关推荐

  1. mysql乐观锁与事务_Mysql中的读锁,写锁,乐观锁及事务隔离级别和并发问题

    mysql读锁,写锁,乐观锁 读锁,也叫共享锁(shared lock) SELECT * FROM table_name  WHERE ...  LOCK IN SHARE MODE 写锁,也叫排他 ...

  2. MySQL中的读锁和写锁

    转载自 MySQL中的读锁和写锁 在数据库的锁机制中介绍过,数据的锁主要用来保证数据的一致性的,数据库的锁从锁定的粒度上可以分为表级锁.行级锁和页级锁.在我的博客中重点介绍过MySQL数据库的行级锁. ...

  3. mysql a锁_MYSQL中的锁

    前言 刚开始接触MYSQL,对其锁机制并不了解,在项目里面,针对死锁以及锁竞争,约定了两条规则. 对涉及多个业务表的更新,要遵守一定的顺序,如按照TABLE-A,TABLE-B,TABLE-C的次序 ...

  4. mysql 日期相等_mysql中时间比较的实现

    MySql中时间比较的实现 unix_timestamp 函数可以接受一个参数,也可以不使用参数.它的返回值是一个无符号的整数.不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如 ...

  5. mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...

  6. mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  7. mysql range用法_MySQL中Explain的用法总结(详细)

    本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...

  8. mysql join图解_MySQL中Join算法实现原理分析[多图]

    在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join.顾名思义,Nes ...

  9. mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在MysqL的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的MysqL函数,可以有效的从字符串中提取出数字. 该MysqL提取出字符串中的数字函数如下: CREATE ...

最新文章

  1. 求求你们了,别再写满屏的 try catch 了!!
  2. android 图片横竖判断_Android横竖屏切换及其对应布局加载问题详解
  3. 018_rate评分
  4. pat德才论(java)
  5. 【SAP】自定义权限对象
  6. linux c实现线程超时退出,c – 如何在另一个线程的超时内唤醒select()
  7. c 控制mysql数据导出_MySql数据库导入导出的三种方式
  8. visio 模具_Visio2013 自定义模具 简单公式
  9. pytorch学习笔记(十八):Use-Gpu
  10. ios touch坐标_iOS 3D Touch –窥视与流行
  11. 基于SpringBoot的在线音乐播放系统
  12. GLib-CRITICAL : g_variant_get_uint32: assertion ‘g_variant_is_of_type (value, G_VARIANT_TYPE_UINT32)
  13. 关于音游,除了节奏大师,你还熟悉哪些?
  14. [转载]每天早晨含姜片含出三大奇迹/姜的二十种食疗功/生姜克
  15. linux开启IP转发
  16. Mysql B+树索引的使用
  17. 编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?
  18. ios跨线程通知_iOS通知线程处理 - osc_3m34anq6的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. GooglePlay提审警告(com.google.android.gms:play-services-safetynet:17.0.0)
  20. 网上二手服务器能做家用电脑吗?

热门文章

  1. QQ授权登陆并获取qq个人信息
  2. 揭秘时空大数据:详细介绍、真实应用场景和数据示例解析
  3. SAP中一个完整的内部订单预算管理的计划预算和实际预算的应用控制测试
  4. vue项目引入sass,node各版本对应node-sass版本
  5. 医学图像DICOM文件解析——RT Structure篇
  6. el-table-column根据条件修改字体颜色,el-table-column序号展示
  7. 某音adult_version防护分析加密分析邀请机制刷vip分析
  8. qq 远程无法连接服务器未响应,win7系统打开qq提示未响应需要联机检查的解决方法...
  9. 万能搜索——迷宫C语言
  10. mongodb 建立唯一索引,去除重复数据