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中对另外没关系的数据执行更新操作

阅读剩余部分

相关阅读 >>

range()是什么?为什么不生产迭代器?

讲解mysql group by 组内排序的方法

mysql存储过程和函数的操作(十二)

mysql创建表的sql语句

mysql 5.7.19在centos6.5下的安装配置详解

怎么使用cmd启动mysql服务?

mysql alter命令使用详解

mysql文件都在哪个文件夹

mysql有必要升级8吗

mysql多层级结构-树搜索介绍

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


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

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

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

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

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

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

评论

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