我理解是每次进行账户余额变动都要进行行锁,如果这个账户是要频繁进行小额转账,比如一秒有十万笔、百万笔汇款,那会因为行锁被阻塞。这种情况是如何处理的呢?
1.定时刷新?汇总一秒的所有数据再刷到账户数据中
2.只记录流水?余额根据流水汇总
麻烦各位大佬,不吝赐教
1.定时刷新?汇总一秒的所有数据再刷到账户数据中
2.只记录流水?余额根据流水汇总
麻烦各位大佬,不吝赐教
1
buaasoftdavid Mar 20, 2024
数据库不可能为了这一个单一需求做定制化的。应该不会是定时刷新。只记录流水也不行的,每次转账都要读一次数据看余额是否够 扣款的。
总结说来,正常银行不会让你一秒转百万笔汇款的。 |
2
Foxkeh Mar 20, 2024
批量,异步,而且并发没法像你说的这么高
|
3
lakehylia Mar 20, 2024
你不可能拿到银行转账接口,拿不到接口,你怎么做到一秒十万笔,靠手点吗?
|
4
wy315700 Mar 20, 2024
一秒有十万笔、百万笔汇款的账号。
这个级别的交易已经不是频繁了。 参考一下数据吧。 2019 年双 11 支付宝交易峰值为 54.4 万笔/秒 |
5
pengxiaoyu OP 打个比方,纯技术的讨论,就是说如何支持。换句话说,如果行锁了一个事务执行需要 10ms ,那是不是意味着 1s 只能修改 100 次账户呢
|
6
waytodelay Mar 25, 2024
同想知道收款方是怎么做的。
付款方我理解为只有个人可以操作,一般来说是没有并发的。 收款方,特别是对公的收款方,是怎么做到频繁的更新?比如 1 秒收到 10 笔转账,是走 select for update 吗? |