返回顶部
首页 > 资讯 > 数据库 >行锁
  • 255
分享到

行锁

行锁 2018-01-06 10:01:33 255人浏览 猪猪侠
摘要

InnoDB和MyISAM最大不同有两点:一是支持事务,二是采用了行级锁 查看Mysql当前隔离级别: show variables like ‘transaction_isolation’;   示例数据 create

行锁

InnoDB和MyISAM最大不同有两点:一是支持事务,二是采用了行级

查看Mysql当前隔离级别:

show variables like ‘transaction_isolation’;

 

示例数据

create table test_innodb_lock (a int(11),b varchar(16))engine=innodb;
insert into test_innodb_lock values(1,"b2");
insert into test_innodb_lock values(2,"2000");
insert into test_innodb_lock values(3,"300asd0");
insert into test_innodb_lock values(4,"4asd000");
insert into test_innodb_lock values(5,"510a00");
insert into test_innodb_lock values(6,"80asd00");
insert into test_innodb_lock values(7,"897jht71");

create index test_innodb_a_ind on test_innodb_lock(a);
create index test_innodb_lock_b_ind on test_innodb_lock(b);
 

select * from test_innodb_lock;

开启两个会话,都改为手动提交

set autocommit=0;  #关闭自动提交

在session1中执行更新操作,查看session2中的情况

session1:

 

session2:执行前和执行后均未变化,直到session1,session2,commit

 

在同一行进行更新操作,会阻塞;不是同一行不会阻塞

session1:

session2:

 

 

查看innoDB_row-_lock状态变量来分析系统上的行锁的争夺情况

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:系统刚启动后到现在总共等待的次数 当等待次数很高,而且每次等待时长也不小的时候,我们就需要分析系统中为什么会有如此多的等待,然后根据执行结果着手指定优化计划     优化建议: 1.尽可能让所有数据检索都通过索引来完成,避免无索引行锁升级为表锁 2.合理设计索引,尽量缩小锁的范围 3.尽可能较少检索条件,避免间隙锁 4.尽量控制事务大小,减少锁定资源量和时间长度 5.尽可能低级别事务隔离

 

您可能感兴趣的文档:

--结束END--

本文标题: 行锁

本文链接: https://lsjlt.com/news/6039.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 行锁
    InnoDB和MyISAM最大不同有两点:一是支持事务,二是采用了行级锁 查看mysql当前隔离级别: show variables like ‘transaction_isolation’;   示例数据 create ...
    99+
    2018-01-06
    行锁
  • MySQL中的锁(表锁、行锁)
    锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所在有数据库必须解决的一个问题,锁冲突也是影响数...
    99+
    2023-09-02
    java 算法 数据库
  • Mysql表锁与行锁
    Mysql锁实战 前言:什么是锁一:全局锁1.1 概念1.2 作用1.3 使用1.4 特点 二:表级锁2.1 概念2.2 分类2.2.1 表锁2.2.2 元数据锁 MDL2.2.3 意向锁...
    99+
    2023-09-09
    mysql 数据库
  • MySQL全局锁、表锁、行锁解析
    ...
    99+
    2014-05-15
    MySQL全局锁 表锁 行锁解析
  • InnoDB事务锁之行锁-insert加锁-隐式锁
    ...
    99+
    2024-04-02
  • MySQL锁机制详解-表锁与行锁
    文章目录 1. 数据库锁理论2. 锁的分类2.1 按数据操作的类型分类2.2 按数据操作的颗粒度分类 3. 表锁的应用3.1 表锁相关命令3.2 给表加表共享读锁3.3 给表加表独占写锁...
    99+
    2023-09-11
    mysql 数据库
  • Oracle锁-行级排它锁(一)
    下一篇:共享锁 学习电子书:https://docs.oracle.com/cd/E18283_01/server.112/e16508/consist.htm#CNCPT1339 什么是排它锁? 每一个事务在修改资源时会获得排他...
    99+
    2016-12-01
    Oracle锁-行级排它锁(一)
  • Mysql锁机制之行锁、表锁、死锁的实现
    目录一、Mysql锁是什么?锁有哪些类别?二、行锁和表锁的区别三、InnoDB死锁概念和死锁案例死锁场景一之select for update:死锁场景二之两个update...
    99+
    2024-04-02
  • 数据库死锁分析(行锁、间隙锁)
      分享遇到过的一种间隙锁导致的死锁案例。文后有总结知识供参考   日志出现:Deadlock found when trying to get lock; try restarting transaction 导致原因:并发导致的数据库...
    99+
    2015-10-31
    数据库死锁分析(行锁 间隙锁)
  • Mysql锁之行级锁和表级意向锁
    Innodb存储引擎实现了两种行级锁: l   共享锁 l   排他锁 这两种锁之间的兼容关系如下图所示 共享锁 排他锁 ...
    99+
    2024-04-02
  • 如何理解MySQL行锁、表锁、间隙锁
    本篇内容介绍了“如何理解MySQL行锁、表锁、间隙锁”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备工作...
    99+
    2024-04-02
  • Mysql_行锁、临键锁、间隙锁的理解
    目录 行锁间隙锁临键锁总结 行锁 行锁,也称为记录锁。 当我们针对主键或者唯一索引加锁的时候,Mysql默认会对查询的这一行数据加行锁,避免其他事务对这一行数据进行修改。 间隙锁 间...
    99+
    2023-09-26
    mysql 数据库 java
  • MySQL的表级锁,行级锁,排它锁和共享锁
    目录前言一、表级锁&行级锁二、排它锁&共享锁1. 测试不同事务之间排它锁和共享锁的兼容性2. 测试行锁加在索引项上三、串行化隔离级别测试前言 如果我们和面试官聊到事务的问题,怎么回答呢? 先说下事务是什么...
    99+
    2022-07-14
    MySQL表级锁 MySQL行级锁 MySQL排它锁 MySQL共享锁
  • Mysql锁机制中行锁、表锁、死锁如何实现
    这篇文章主要介绍了Mysql锁机制中行锁、表锁、死锁如何实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Mysql锁是什么?锁有哪些类别?锁定义:  ...
    99+
    2023-06-29
  • mysql innodb的行锁(5) --next-Key 锁
    间隙锁 next-key, 是针对范围条件不存在的记录上锁,避免不可重复读和幻象读。 如果是 read committed 的隔离级别,则不存在此问题。 所以: 我们在开发中,如果使用 repeatable...
    99+
    2024-04-02
  • MySQL表锁、行锁、排它锁及共享锁怎么使用
    这篇文章主要介绍“MySQL表锁、行锁、排它锁及共享锁怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL表锁、行锁、排它锁及共享锁怎么使用”文章能帮助大家解决问题。一、事务隔离机制的选...
    99+
    2023-06-29
  • MySQL行锁浅析
    概述 MySQL是非常流行的关系型数据库,许多系统都使用它来存储和管理数据。在高并发环境下,为了保证数据的一致性和可靠性,数据库需要实现并发控制,其中包括锁机制。MySQL提供了两种锁类型,一种是表级锁,另一种是行级锁。本文将深入探讨My...
    99+
    2023-08-19
    mysql 数据库 java
  • mysql锁之三种行级锁介绍
    本文主要介绍 1.mysql三种行锁介绍 2.RR模式下,next-key lock为什么可以解决幻读问题 首先,创建一张表: mysql> show create table test0...
    99+
    2024-04-02
  • mysql行锁和表锁怎么使用
    MySQL中的行锁和表锁是用来控制并发访问数据库的机制,可以防止多个用户同时修改同一行或同一表的数据,保证数据的一致性和完整性。1....
    99+
    2023-09-11
    mysql
  • MySQL表锁、行锁、排它锁及共享锁的使用详解
    目录前言一、事务隔离机制的选择二、表级锁&行级锁三、排它锁(Exclusive)和共享锁(Shared)1. 测试不同事务之间排它锁和共享锁的兼容性2. 测试行锁加在索引项上...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作