mybatis全局属性自增属性问题

mybatis配置keyproperty之后,当数据库表不使用自增主键而使用uuid作为主键会不会
有什么不好

不管是哪种方式,达到的目的无外乎 让这条记录是唯一的,我不知道数据库中自增的底层实现,
但我敢肯定 起码分 两步,一是 查出当前最高id是多少,然后再自+1,
uuid也能保证你的数据的唯一性,起码重复的概率比你中五百万的概率还低几十倍,入库只需要一步,对数据库的压力小一点,
数据小没关系,你用哪种都可以,但是数据一旦大起来,你就得考虑内存与数据库的交互压力了,uuid是在内存中计算,你自己衡量吧

如果是单表单库用自增没问题,但是如果考虑到数据库的分表分库,分布式设计,那就要使用全局唯一的主键了,这时使用UUID做主键就是不错的选择,重复概率是很小很小的,自己权衡。

Hibernate在保存对象时,生成一个UUID字符串作为主键,保证了唯一性,但其并无任何业务逻辑意义,只能作为主键,唯一缺点长度较大,32位(Hibernate将UUID中间的“-”删除了)的字符串,占用存储空间大,但是有两个很重要的优点,Hibernate在维护主键时,不用去数据库查询,从而提高效率,而且它是跨数据库的,以后切换数据库极其方便。
特点:uuid长度大,占用空间大,跨数据库,不用访问数据库就生成主键值,所以效率高且能保证唯一性,移植非常方便,推荐使用。