图解产品大事务与小事务的区别是什么
发布网友
发布时间:2023-08-04 10:15
我来回答
共1个回答
热心网友
时间:2024-11-23 20:55
其实大事务是指运行时间比较长,操作的数据比较多的事务。
这类型的事务容易给数据库带来负担:
锁定了过多的数据,造成不必要的拥塞堵塞。
在事务执行的过程中需要堵塞容易引起主从数据同步不一致的情况发生。
当我们执行事务的操作过大,例如说delete某张表里买呢一亿条数据的时候,如果加入了事务保护,那么假设期间出现了异常,整段事务的回滚将会非常消耗机器的性能和耗时。通常可以让研发将大事务分解为多个小事务进行优化处理。
在mysql的二进制日志里面,当多个会话同时访问server执行事务性sql语句的请求时候,binlog会给每个会话单独开启一个线程进行事务性sql的缓存处理。直至当相应的sql执行完毕之后再写入到binlog日志中。
这样做的好处在于能够将不同的事物进行分隔出来处理。并且保证每个写入binlog的事务sql都是完整且正常执行的一个单位。而且如果事务在执行的过程中发生了回滚的话,可以直接在内存中间数据删除,不需要再在日志里面进行记录删除操作。