mysql锁机制

1,数据库锁理论概述
分类: 读锁、写锁。
行锁,表锁,页锁。
1.1 表锁:无死锁,加锁快
加锁:lock tables 表名 read(write)
释放锁: unlock tables;
查看锁: show open tables
读锁 -》共享锁 1,自己可以读,2,别人可以读 3,不可以更新 4,不可以读其他表
写锁-》独占锁 1,自己可以读,2,别人不可以读,不可以更新 3,可以更新 4,不可以读其他表
myisam 在执行select 之前,会自动给涉及的表加读锁,在执行增删改之前,会自动给涉及的表加写锁。
分析表锁:
通过 table_locks_waited和table_locks_immediate变量分析表锁定
查看 show status like '%table%'
table_locks_immediate:产生表级锁定的次数,表示可以立即获取锁的查询次数,每立即获取锁值加一。
table_locks_waited:出现表级锁定争用而发生等待的次数(不能立即获取锁的次数,每等待一次值加一),此值高则说明存在着严重的表级锁争用情况。
另外,myisam读写锁调度是写优先,这也是myisam不适合做写为主表的引擎的原因。因为写锁后,其他线程不能做任何操作,大量查询会使查询很难得到锁,从而造成永久阻塞。
1.2 行锁
偏向Innodb存储引擎,开销大,加锁慢,会出现死锁。锁定粒度最小,发生所冲突的概率最低,并发度最高。
Innodb与myISAm的最大不同有两点:1,支持事务 2,采用行级锁
语法: 1,通过索引项加锁 2,通过select **** for update加锁 ,锁定某一行后,其他操作会被阻塞,知道锁定行的会话commit。
InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。
1)InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁
2)在不通过索引条件查询的时候,InnoDB确实使用的是表锁,而不是行锁
3)有了索引以后,在对索引字段查询时,使用的就是行级锁,如果是使用相同的索引键值,是会出现锁冲突的
4)当表有多个索引的时候,不同的事务可以使用不同的索引锁定不同的行
1.3 间隙锁
当我们用范围条件而不是相等条件检索数据(并请求共享或排他锁时),InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(Next-Key锁)
分析行锁:
查看 show status like 'innodb_row_lock%'
innodb_row_lock_current_waits 当前正在等待锁定的数量
innodb_row_lock_time 从系统启动到现在锁定总时间长度
innodb_row_lock_time_avg 每次等待所花费平均时间
innodb_row_lock_time_max 从系统启动到现在等待最长的一次花费的时间
innodb_row_lock_waits 从系统启动到现在总共等待的次数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 一、定义 锁是计算机协调多个进程或线程并发访问某一资源的机制在数据库中,除传统的计算资源(如CPU、RAM、I/O...
    紫荆秋雪_文阅读 183评论 0 0
  • 一、MySQL锁机制 1.1 锁分类 按锁的粒度 划分: 表锁:表锁是粒度最大的锁,开销小,加锁快,不会出现死锁,...
    CJ21阅读 1,310评论 2 10
  • 概述 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则...
    datazhen阅读 756评论 0 2
  • 原文:http://blog.csdn.net/soonfly/article/details/70238902 ...
    白驹过隙_忽然而已阅读 277评论 0 0
  • 个人专题目录[https://www.jianshu.com/p/140e2a59db2c] 1. 概述 1.1 ...
    Java及SpringBoot阅读 373评论 0 1