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

阅读剩余部分

相关阅读 >>

详解如何通过ssh通道来访问mysql

mysql居然还能实现分布式锁的方法

centos中mysql安装方法

详解在mysql查询时,offset过大影响性能的原因与优化方法

mysql修改表名语句是什么

mysql8.0.28winx64.zip安装配置方法图文教程

wamp中如何打开mysql

mysql怎么增加int字段?

如何启动mysql

mysql实现每个专业分数段统计人数

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


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

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

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

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

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

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

评论

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