mysql事务的注意

mysql默认自动提交,开启一个事务的时候也就是

set autocommit = 0;

关闭了自动提交,

我们有时候会在执行一个操作的时候,显式的进行锁表操作

比如显式的 写锁表:

lock table aaa write ;

这个时候 需要进行一个inset操作了,如果当前线执行了一个 select 或者其他的行为,好了,你就等着吧,

所以给了一个写锁,你就要执行 写的操作

比如:

insert aaa (aa)values('tset');

如果你没有unlock的时候,这个表一直处于所得状态,其他线程的任何操作是也是一直处于等待的状态,但是此时你在锁表的这个线程 insert以后并没有执行 unlock ,而是开启了一个事务,那么也是造成了一个隐式的unlock table aaa一个效果,

此外注意 事务对一些操作是不能回滚的,比如DDL操作,而且有一部分DDL操作是隐式提交的

当你看到了这篇博客,希望您能使用适合事务的场景中去使用它,而不是为了练习事务,或者处于别的原因而不是项目的某个场景很适合事务而去使用它,

另外在PDO当中, 为了以防万一,使用事务的时候一定要用try catch包裹起来,我们并不能保证程序一定会按照我们想要的去执行,墨菲定律的情况下,没有什么事情是绝对的,

同事给我说,异常也能终止不执行commit ,是的,说的没错,因为PDO帮你处理了,在进程异常的时候PDO会自动帮你rollback回去了, 换成别数据库操作对象类呢??? 一点也不想想, 现在就一个心态,虽然我做了五六年开发,不如一个刚入行的大牛 ,一堆的牢骚,天天看到屎山代码就烦得不得了,高度耦合,不明白类的作用,你能不能保证一个类只干一个事情啊,动不动就有问题,我也是无语了,2023年我说过重复性最多的一句话:你测了吗???为啥说这句话,不明白吗? 心态快给我整没了,

今天更扯,有个问题,他在他机器上测试没事,然后我拉到我本地有问题,,然后他说他的没问题就不管我了,我找了一大圈,在本次后端代码更新中,发现每个ORM 连接信息都被定义到他远程的数据库上,可能是我太笨了吧, 跟他说了一下,他才想起来吧,唉。

写这个博客没别的意思,就是发泄一下心中的不满,时刻告诉我自己,我现在在做一个前端的工作,后端怎么写,关我屁事,我只要我的数据,其他的一概不管,

睡觉

相关推荐
SelectDB2 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
ClouGence3 小时前
开源数据库管理工具 CloudDM 4.2.0 发布,新增 GoldenDB、KingbaseES 等数据源
数据库·dba·devops
发霉的馒头3 小时前
ORA-00845: MEMORY_TARGET not supported on this system的解决方法
数据库
草莓熊Lotso5 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
煎饼皮皮侠6 小时前
【设计】设计一个web版的数据库管理平台后端(之五) --借鉴mybatis
数据库·mybatis
东风破_13 小时前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
九皇叔叔14 小时前
《MySQL 体系架构详解:Server 层、SQL 执行流程与 InnoDB、MyISAM、MEMORY 存储引擎》
sql·mysql·架构
橙子家14 小时前
OSS 文件上传的几个风险点和解决方案
数据库
2601_9620664916 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
愤怒的苹果ext16 小时前
MySQL Shell备份恢复数据库
数据库·mysql·备份恢复·mysqlsh