mysql 一个事务中多表操作是怎么处理的

2020-05-21 11:55:29 +08:00
 awanganddong
一般这种应该是看具体业务情况

现在我负责的内容主要是广告的统计及扣费这部分

1.用户点击或者浏览然后把广告上报给我
2.然后我对广告进行扣费

现在需要对多张表处理,而且必须在一个事务中完成
这样特别容易出现锁表这种情况

对广告的计费是需要尽可能保证近实时扣费
不然容易出现预算不足的情况

这里边有实际一些的解决方案或者说在一个事务中多表操作怎么处理比较好

现在个人能力以及业务不适合引入太多的新技术

4396 次点击
所在节点    MySQL
7 条回复
xizismile
2020-05-21 12:24:23 +08:00
锁表?你测试过吗?你用的数据库事务隔离级别是啥?表有加索引吗?具体啥情况出现了锁表?描述一个场景出来
zoharSoul
2020-05-21 12:30:22 +08:00
这样特别容易出现锁表这种情况


并不认同
peyppicp
2020-05-21 12:32:00 +08:00
没命中索引才会去去锁表
awanganddong
2020-05-21 13:42:34 +08:00
mysql 版本 8.0

READ-COMMITTED 读已提交隔离模式

每个表都有加索引

查看系统日志发现有操作失败的记录

初步怀疑是在事务过程中出现操作锁表的问题

现在 mysql 日志我这里获取不到
weizhen199
2020-05-21 13:45:09 +08:00
这个感觉也不太需要数据库这种非常强的事务吧
awanganddong
2020-05-21 13:49:43 +08:00
对业务的取舍这里,这里边也感觉到有些不合理

但是更好的方法我现在还没想到
chmaple
2020-05-21 13:50:31 +08:00
可以试试 redis 锁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/673947

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX