在交易系统设计中,一张表插入删除,和两张表分别插入删除,效率差别大吗,求指导

mervynhit 2012-10-18 05:37:59
方案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不会出现数据锁的情况,应该不会太差吧
...全文
152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a8509190 2012-10-19
  • 打赏
  • 举报
回复
按你描述的 还是一个表的好点
NewMoons 2012-10-19
  • 打赏
  • 举报
回复
完全不明白B方案存在的意义。觉得像是自己给自己找麻烦
wnf2009 2012-10-18
  • 打赏
  • 举报
回复
额~~~我觉得A个好。B有用到资源太多了,又是定时器,又是两张相同的表。。。
和你说下最近公司的项目,和你差不多,是大型物流系统,每个表有个列是逻辑删除标识,不特殊的情况下不做真正的物理删除。还有个列是乐观排他key,插入时为0.随后每次update就+1.。
mervynhit 2012-10-18
  • 打赏
  • 举报
回复
怎么没有人回一下,太失望了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧