在交易系统设计中,一张表插入删除,和两张表分别插入删除,效率差别大吗,求指导
方案A:比如我有一张交易表和一张交易历史表,交易表里面有一个Delete的列,delete为true表示需要删除,新插入的数据delete总是为false。
这种交易表吞吐量很大,需要同时插入新数据,和处理删除delete为true的行并插入交易历史表,但是由于插入和删除的行不会相同(新插入的数据delete总是为false),所以应该不会有数据被锁住不让删的情况,这是方案A
方案B:
建2个交易表, A, B, 一个交易历史表History
A,B(交替)用来插入未来一段时间的交易数据,比如未来5分钟,当A表为插入数据表时,B表为处理数据表,B处理完数据后插入History表,然后下一个时间段,B表为插入表,A表为处理表。A B 表交替进行插入处理。
这两种方案,我觉得应该是B方案好,可是能好很多吗,效率能提高 50%吗, 因为方案A不会出现数据锁的情况,应该不会太差吧
--------------------编程问答-------------------- 怎么没有人回一下,太失望了 --------------------编程问答-------------------- 额~~~我觉得A个好。B有用到资源太多了,又是定时器,又是两张相同的表。。。
和你说下最近公司的项目,和你差不多,是大型物流系统,每个表有个列是逻辑删除标识,不特殊的情况下不做真正的物理删除。还有个列是乐观排他key,插入时为0.随后每次update就+1.。 --------------------编程问答-------------------- 按你描述的 还是一个表的好点 --------------------编程问答-------------------- 完全不明白B方案存在的意义。觉得像是自己给自己找麻烦 --------------------编程问答--------------------
补充:Java , Java EE