聊聊Navicat造成的数据库死锁问题
文章目录
Navicat是我比较喜欢的一款工具了,虽然我没有买正版😥😥不过最近经常遇到有小伙伴说“Navicat会导致死锁,不要用”、“Navicat会锁表”等等,于是就有了这篇文章,今天就来聊聊什么情况下会导致死锁。
其实在大多时候,使用Navicat造成死锁的原因都是因为操作不当引起的(基本都是因为图形化界面操作导致)。
下面直接进入正题👇👇
环境
数据库:SQL Server
客户端:Navicat 12.1
死锁演示
事务中使用刷新
先来一张GIF直观的感受一下
具体步骤:
- 打开数据表
- 点击开始事务开始事务
- 添加一条数据(也可以啥都不操作)
- 点击下方的刷新按钮两次
- 恭喜你!啥也干不了了~~~ 老老实实
Ctrl+Alt+Del吧
数据库检查一下,果然死锁。
如果第三步啥也不操作,那么是不会死锁的,只会造成客户端崩溃
|
|

事务中使用筛选
先来一张GIF直观的感受一下
具体步骤:
- 打开数据表
- 先对对数据进行一次筛选
- 点击开始事务开始事务
- 添加一条数据(新增数据必须满足步骤2和5中中的筛选条件)
- 修改新的筛选条件
- 弹窗报错
- 点击提交事务
- 恭喜你,
Navicat直接挂掉了
总结
其实上述的两种情况,无外乎都是在事务中使用了查询、筛选等操作。所以小伙伴们以后在使用Navicat时只要注意一下几点,剩下的就放心大胆的用就好了。敲黑板
- 需要进行事务操作时,尽量减少使用
- 如果非得在界面进行事务操作,那么就快速处理完数据然后提交。免得其他人打个岔什么的后自己也忘记了,然后小手一抖,又点了刷新按钮
是不是可以去给开发者提两个可复现的BUG了