iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql中update会不会锁表
  • 116
分享到

mysql中update会不会锁表

2024-04-02 19:04:59 116人浏览 薄情痞子
摘要

本篇内容主要讲解“Mysql中update会不会锁表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中update会不会锁表”吧!

本篇内容主要讲解“Mysql中update会不会表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习mysql中update会不会锁表”吧!

mysql中update会不会锁表的两种情况:1、update没有索引时,语句前面一个事务通过commit提交,命令会正常运行结束,则update会锁表;2、update添加索引时,命令不会卡住,不会锁表,但会更新同一行导致锁行。

教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql中update会锁表吗

如果没有索引,所以update会锁表,如果加了索引,就会锁行

当前面一个事务通过commit提交了,命令就会正常运行结束,说明是被锁表了。

两种情况:

  • 1、带索引

  • 2、不带索引

前提介绍:

方式:采用命令行的方式来模拟

1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开启了自动提交事务。

命令:select @@autocommit;

结果如下:

mysql中update会不会锁表

如果是1,那么运行命令:set autocommit = 0;设置为不开启自动提交

2.当前的数据库表格式如下

tb_user | CREATE TABLE `tb_user` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `name` varchar(32) DEFAULT NULL,
 `phone` varchar(11) DEFAULT NULL,
 `operator` varchar(32) DEFAULT NULL,
 `gmt_create` datetime DEFAULT NULL,
 `gmt_modified` datetime DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

显然除了主键,我没有加任何索引

实际例子:

1.没有索引

运行命令:begin;开启事务,然后运行命令:update tb_user set phone=11 where name="c1";修改,先别commit事务。

再开一个窗口,直接运行命令:update tb_user set phone=22 where name=“c2”;会发现命令卡住了,但是当前面一个事务通过commit提交了,命令就会正常运行结束,说明是被锁表了。

2.给name字段加索引

create index index_name on tb_user(name);

然后继续如1里面的操作,也就是一个开启事务,运行update tb_user set phone=11 where name="c1";先不提交

然后另一个运行update tb_user set phone=22 where name="c2";发现命令不会卡住,说明没有锁表

但是如果另一个也是update tb_user set phone=22 where name="c1";更新同一行,说明是锁行了

到此,相信大家对“mysql中update会不会锁表”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中update会不会锁表

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中update会不会锁表
    本篇内容主要讲解“mysql中update会不会锁表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中update会不会锁表”吧! ...
    99+
    2024-04-02
  • MySQL UPDATE操作会不会锁定表?
    MySQL UPDATE操作会不会锁定表?理论和实践中的解释 MySQL是一种流行的关系型数据库管理系统,提供了多种用于操作数据的SQL语句。在实际应用中,对于更新操作(UPD...
    99+
    2024-03-15
    mysql update 锁定 sql语句
  • MySQL中的UPDATE操作是否会引起表锁定?
    MySQL中的UPDATE操作是否会引起表锁定? 在MySQL数据库中,UPDATE操作是用来修改表中已存在的数据记录的一种操作。但是,当执行UPDATE操作时,是否会引起表锁定呢?答...
    99+
    2024-04-02
  • mysql删除大量数据会不会锁表
    MySQL在删除大量数据时会进行锁表操作,这可能会导致其他查询或写操作被阻塞,从而影响数据库的性能和吞吐量。 具体来说,MySQL在...
    99+
    2023-10-23
    mysql
  • MySQL UPDATE语句是否会导致表被锁定?
    MySQL UPDATE语句是否会导致表被锁定? MySQL 是一个流行的关系型数据库管理系统,广泛用于各种应用程序中。在数据库操作中,UPDATE 语句用于更新表中的数据。但是,一个...
    99+
    2024-03-15
    mysql update 锁定
  • MySQL的UPDATE操作是否会造成表级锁定?
    MySQL的UPDATE操作是否会造成表级锁定? 在MySQL数据库中,当执行UPDATE操作时,是否会造成表级锁定,这是一个常见而又重要的问题。表级锁定会影响数据库的并发性能,因此了...
    99+
    2024-03-15
    表级锁定检查 sql语句
  • 面试被问select......for update会锁表还是锁行
    目录验证:结合一下实例验证 select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。...
    99+
    2024-04-02
  • mysql为什么会锁表
    mysql为什么会锁表?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql为什么会锁表1.保证数据的正确性,了防止由于数据...
    99+
    2024-04-02
  • mysqlupdate会锁表吗
    mysqlupdate会锁表,影响因素有:1、存储引擎类型,不同的存储引擎对锁的处理方式可能有所不同;2、事务隔离级别,较高的隔离级别=可能会导致更多的锁,而较低的隔离级别=可能减少锁的使用;3、WHERE条件,UPDATE语句中的...
    99+
    2023-07-25
  • mysql什么情况下会锁表
    在MySQL中,当对表进行写操作(如INSERT、UPDATE、DELETE)时,需要对相关的数据行加锁以确保数据的一致性和完整性。在某些情况下,MySQL需要锁定整个表而不是部分行,这种情况下会锁定整个表,导致其他会话不能访问表。 使用A...
    99+
    2023-08-17
    mysql java
  • mysql中in会不会用索引
    今天小编给大家分享一下mysql中in会不会用索引的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2024-04-02
  • MySQL中SET TRANSACTION会不会影响事务
    这篇文章给大家介绍MySQL中SET TRANSACTION会不会影响事务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MySQL支持SQL:1992标准...
    99+
    2024-04-02
  • mysqldump备份时加single-transaction会不会加锁
    mysqldump --all-databases --master-data=2 --single-transaction --quick -R --events -uroot > /tmp/ful...
    99+
    2024-04-02
  • MySQL insert会阻塞update怎么解决
    这篇文章主要介绍“MySQL insert会阻塞update怎么解决”,在日常操作中,相信很多人在MySQL insert会阻塞update怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2023-07-05
  • linux会不会中病毒
    本篇内容介绍了“linux会不会中病毒”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux会中病毒。只要是电脑系统就有中病毒的可能,包括...
    99+
    2023-06-30
  • mysql修改字段的长度是否会锁表
    结论: 缩小字段长度不能使用inpalce,会锁表。放大字段长度:取决于变化前和变化后是否跨越255这个长度。以UTF8编码为例,一个字符占3个字节。字段变化1:varchar(50)--》varch...
    99+
    2023-09-17
    mysql 数据库 java
  • oracle什么情况下会锁表
    oracle在数据备份和还原、数据迁移和升级、数据修复和维护、数据加载和清除和数据查询和分析的情况下锁表。在使用表锁时,需要注意合理地控制锁定范围和锁定时间,以提高数据库的性能和并发访问能力。本教程操作环境:windows10系统、Orac...
    99+
    2023-07-10
  • mysql锁与会话的概念
    这篇文章主要介绍“mysql锁与会话的概念”,在日常操作中,相信很多人在mysql锁与会话的概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql锁与会话的概念”的疑惑...
    99+
    2024-04-02
  • 两个会话分别只执行一个SQL会不会形成死锁
    这篇文章给大家介绍两个会话分别只执行一个SQL会不会形成死锁,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1,问题   两个会话分别...
    99+
    2024-04-02
  • mysql数据库学起来会不会很难
    这篇文章主要介绍了mysql数据库学起来会不会很难,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql算是比较好学的一种数据库了,相对于sq...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作