MySql类型转换导致行锁升级为表锁


本文摘自PHP中文网,作者php是最好的语言,侵删。

在MySql的写语句中,给表列赋值与表类型不符合时,MySql底层的优化器发挥作用,会做一个强制类型转化,此时能正常操作,但会导致行锁升级为表锁。示例如下

以student表为例,表字段类型:
1.png表内容如下:
1.png

打开两个session会话窗口,并把两个会话窗口中的MySql的自动提交模式改为手动提交

1

>set autocommit=false;

1.png在会话窗口1中执行更新语句,但不提交事务。age列在建表时指定的是int类型,此地更新语句中用字符串’100’进行赋值,在MySql的优化器中会自动把字符串’100’强制转化为整形100,然后再执行SQL检索。

1

>update student set class=3 where age='100'

然后再会话窗口2中对另外没关系的数据执行更新操作

阅读剩余部分

相关阅读 >>

mysql中常用的拼接语句的小结(代码示例)

mysql讲解条件判断函数

mysql如何查看连接数和连接状态

mysql怎么查询最新的记录

mysql如何将一行变成多行

mysql自增字段取值的详细介绍(附代码)

20分钟mysql基础入门

mysql中char和varchar的区别

sqlite如何迁移到mysql脚本的实例介绍

mysql数据碎片太多怎么办?

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...