突然想到一个问题,mysql中我们经常用到事务,比如一次向几张表插入内容,如果中间出错了可以回滚,但是实际开发中,像这种一次可能向多个数据表写入数据的情况,有时并没有采用事务来防止出错。
比如一件商品表单,有商品基本信息,商品sku(颜色尺寸价格库存),商家信息,店铺信息,提交的时候是向不同的表插入或更新数据,并且都是等第一张表插入(或更新)完了,然后第二张表,第三张表。。。
如果中间某个过程突然中断了,只向前一张表成功插入了数据,而后面的程序没有执行,不怕出现这种情况吗?
再比如,文章表一般设计两张表,一张文章基本信息表,一张文章详情表,大内容放详情表,插入和读取数据也是分两步,也一般不用事务。
我用到事务的一个地方是在一个广告联盟系统,根据接口数据计算广告费用并记录到广告报表,同时更新记录到用户收益表,年统计表等,用了事务,中间某个过程出错就回滚。
为什么有的地方用事务,有的地方不用事务,使用事务的场景是什么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.