mysql临键锁如何使用

1、默认情况下,innodb使用临键锁锁定记录。

select ... for update

2、当查询索引包含唯一属性时,临键锁将被优化并降级为记录锁,即只锁定索引本身,而不是范围。

3、不同场景下的临键锁会退化。

实例

事务1 start transaction;select SLEEP(4);select * from test where age=22 for update;select * from test where age>23 for update;select sleep(20);commit; **************************事务2 start transaction;select sleep(8);select * from test where age=20 for update;select * from test where age=21 for update;select * from test where age=22 for update;select * from test where age=23 for update;commit;  ************************************事务执行状态 事务1 start transaction> OK> 时间: 0s  select SLEEP(4)> OK> 时间: 4.001s  select * from test where age=22 for update> Affected rows: 0> 时间: 0.001s  select * from test where age>23 for update> Affected rows: 0> 时间: 0.001s  select sleep(20)> OK> 时间: 20s  commit> OK> 时间: 0.001s  ***********************事务2 start transaction> OK> 时间: 0.001s  select sleep(8)> OK> 时间: 8s  select * from test where age=20 for update> Affected rows: 0> 时间: 0.001s  select * from test where age=21 for update> Affected rows: 0> 时间: 0.001s  select * from test where age=22 for update> Affected rows: 0> 时间: 14.158s  select * from test where age=23 for update> Affected rows: 0> 时间: 0.001s  commit> OK> 时间: 0s

以上就是mysql临键锁如何使用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/161510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月5日 21:56:25
下一篇 2025年11月5日 07:45:08

相关推荐

  • MySQL命令行中如何修改MySQL密码

    方法一: mysql admin -u 用户名 -p 旧密码 passw 新密码 ‘u’为 username 的简称,‘p’为原 password 简称。 方法二: 我们先登录 MySQL 数据库。之后输入: mysql>set password for root@localhost = pa…

    数据库 2025年12月5日
    000
  • MySQL8如何设置自动创建时间和自动更新时间

    业务场景: 1、在数据库表中的数据,要求记录每一条新增数据的创建时间,时间格式要求明确至:年月日:时分秒。 2、在数据库表中的数据,要求记录每一条更新数据的更新时间,时间格式要求明确至:年月日:时分秒。 功能实现: 1、为每张业务表添加create_time 和update_time 字段,且将字段…

    数据库 2025年12月5日
    000
  • mysql InnoDB的四种锁定范围是什么

    1、记录锁,锁定索引中的记录。 2、间隙锁。 要么锁定索引记录中间的值,要么锁定第一个索引记录前面的值,要么锁定最后一个索引记录后面的值。 3、临键锁,是索引记录上的记录锁和索引记录前的间隙锁的组合。 4、插入意向锁,在insert操作中添加记录id的锁。 实例 — id 列为主键列或唯一索引列U…

    数据库 2025年12月5日
    000
  • MySQL中FROM_DAYS函数怎么用

    FROM_DAYS(date) SELECT FROM_DAYS(367) -> 0001-01-02 返回西元0年至今多少天的DATE值 以上就是MySQL中FROM_DAYS函数怎么用的详细内容,更多请关注创想鸟其它相关文章!

    数据库 2025年12月5日
    000
  • rocks mysql数据库多实例数据库配置的示例分析

    mysql数据库默认路径修改 启动httpd服务 mkdir -p /run/httpdsystemctl start httpd.service 1.什么是多实例? 在linux系统中代表:多个进程+多个线程+多个预分配内存结构 一般用来测试环境中,测试主从,高可用等。 多实例配置方案:(多个数据…

    数据库 2025年12月5日
    000
  • Linux怎样查看mysql密码

    相信很多小伙伴都经历过忘记密码,如果在Linux下忘记MySQL密码该怎么办? Linux查看mysql密码具体方法。 查看默认密码 grep ‘temporary password’ /var/log/mysqld.log 或者 cat /var/log/mysqld.log | grep ‘te…

    数据库 2025年12月5日
    000
  • MySQL数据库的基本操作实例分析

    一、MySQL简介 1、数据库管理软件分类 主要分为关系型和非关系型。 可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构。 关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用。 非关系型…

    数据库 2025年12月5日
    000
  • mysql内连接查询实例分析

    1、分为隐式内连接查询和显示内连接查询,通过是否包含inner join关键字进行区别。 2、主表和从表中的数据都是满足连接条件则能够查询出来,不满足连接条件则不会查询出来。 实例 — 2.1 隐式内连接方式select *from t_category c, t_product p WHERE …

    数据库 2025年12月5日
    000
  • MySQL中binlog/redolog/undolog区别是什么

    MySQL binlog/redolog/undolog 的区别? 想和大家聊聊 innodb 中的锁机制,那么不可避免的要涉及到 mysql 的日志系统,binlog、redo log、undo log 等,看到有小伙伴总结的这三个日志还不错,赶紧拿来和各位小伙伴分享。 日志是mysql数据库的重…

    2025年12月5日 数据库
    000
  • phpstudy安装后mysql无法启动如何解决

    原因分析 我去网上查找phpstudy和mysql冲突的问题, 哦原来是 这两个mysql都占用的是3306端口, 而系统原来的mysql会开机启动(就是这里,会让原来的mysql作为服务开机启动监听)。那么当你打开phpstudy的时候, 便会再启动一个mysql服务,这个时候因为是同一个端口的关…

    2025年12月5日
    000
  • MySQL与PHP中的内置函数怎么用

    MySQL 内置函数 mysql 内置函数可以帮助我们更方便的处理表中的数据, 简化操作. 数学函数: 函数 描述 ABS()取绝对值SQRT()取根号MOD()取模FLOOR()返回不大于的最大整数值CELLING()返回不小于的最小整数值ROUND()四舍五入SIN()取正弦COS()取余弦 字…

    2025年12月5日
    000
  • 怎么在MySQL中设置时间

    MySQL支持多种时间格式,其中包括DATE、TIME、DATETIME和TIMESTAMP。这四种格式都有其特定的用途。 DATE格式表示日期,格式为“YYYY-MM-DD”,其中“YYYY”表示年份,“MM”表示月份,“DD”表示日期。 TIME格式表示时间,格式为“HH:MM:SS”,其中“H…

    数据库 2025年12月5日
    000
  • 如何安装和配置ThinkPHP开发环境?

    如何安装和配置thinkphp开发环境?首先,安装php 7.2+和web服务器(如xampp或wamp);其次,使用composer安装thinkphp框架;最后,配置应用和web服务器指向thinkphp的public目录。 在开始我们的ThinkPHP之旅前,让我们先回答一个关键问题:如何安装…

    2025年12月5日
    000
  • mysql左外连接查询的语法是什么

    1、以join左表为主表,显示主表的所有数据,并根据条件查询连接右表的数据。如果满足条件,则显示;如果不满足,则显示为null。 2、可以理解为在内部连接的基础上,确保左表的所有数据都显示。 语法 select 字段 from a left [outer] join b on 条件 实例 使用左连接…

    数据库 2025年12月5日
    000
  • 基于springboot+bootstrap+mysql+redis怎么搭建完整的权限架构

           首先将已经封装好的bootstrap脚本引入到我们现有的工程,目录如下:        到此我们的bootstraop框架引入完成,那么基于bootstrap框架我们现在开始开发属于我们的第一个bootstrap页面登陆页,打开我们的templates文件在底下找到我们login.ht…

    2025年12月5日 数据库
    100
  • 如何用Docker搭建外部可以访问的mysql

    安装mysql 8.0 docker run -p 63306:3306 -e mysql_root_password=zhaooleemysql –name zhaooleemysqldb -d mysql:8.0 p 53306:3306 将docker容器的3306端口映射到宿主机的6330…

    2025年12月5日 数据库
    000
  • PHP一键环境与Docker容器化有什么区别_技术异同分析

    PHP一键环境与Docker本质区别在于封装与隔离方式:前者将服务直接安装于系统,多项目共用环境易冲突,适合新手和简单项目;后者通过容器镜像打包应用及依赖,实现环境隔离与一致,便于迁移和团队协作;一键环境部署直观但可移植性差,Docker学习成本高却支持自动化部署;资源上前者更轻量,后者虽有损耗但利…

    2025年12月5日
    000
  • php如何查询mysql中的数据数量

    一、连接 MySQL 数据库 在使用 PHP 操作 MySQL 数据库前,需要先连接数据库,可以使用 mysqli_connect() 函数来连接。该函数需要传入四个参数,分别是 MySQL 服务器地址、MySQL 用户名、MySQL 密码以及要连接的数据库名。下面是一个连接 MySQL 数据库的示…

    数据库 2025年12月5日
    000
  • MySQL事务实例分析

    mysql 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。 方式 1 START TRANSACTION 或 BEGIN 开始新的事务 COMMIT…

    2025年12月5日 数据库
    000
  • 动态年份范围选择器在PHP与MySQL中的实现

    本教程详细介绍了如何利用PHP和MySQL构建一个动态的年份范围选择器,用于过滤数据库记录。文章涵盖了从数据库中获取最小和最大年份、生成5年间隔的选项、构建HTML下拉菜单,到处理用户选择并使用SQL的BETWEEN操作符进行数据过滤的全过程。同时强调了使用预处理语句防止SQL注入等安全实践。 1.…

    2025年12月5日
    000

发表回复

登录后才能评论
关注微信