【Mybatis】Oracle Sequence序列的失序问题

背景:

项目中用到mybatis实现多线程insert/update时,对应取出自增sequence值的时间(creationTimestamp)和其最终被commit至数据库的顺序并不一致。

即,sequenceID(A) > sequenceID(B), 但creationTimestamp(A)<creationTimestamp(B);这两个字段的序列大小排序不一致。

虽然能保证自增序列在多线程下的唯一性,但导致其他依赖其有序性的相关功能被影响。

原因:

方案:需要保证sequenceID和creationTimestamp的有序性保持一致。

参考:

mybatis基础

https://blog.csdn.net/u013967175/article/details/77842402

mybatis实现自增序列在mysql, sql server, oracle中的不同

https://blog.csdn.net/thepeakofmountain/article/details/17333079?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-10.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-10.control

http://www.zzvips.com/article/80528.html

Oracle在RAC环境下的Sequence乱序问题 

https://www.cnblogs.com/chax/p/6120888.html

https://blog.csdn.net/scorpio3k/article/details/8597965

Oracle Sequence Cache,Order属性的性能问题

http://blog.itpub.net/29785807/viewspace-2155612/

http://blog.itpub.net/52450/viewspace-1055679/

原文地址:https://www.cnblogs.com/cathygx/p/14975693.html