Mybatis-Plus 自定义id生成器

1.自定义ID生成器是mp的核心功能。默认使用雪花算法+UUID(不含中划线)

2.共有以下几种生成策略

        ①、AUTO :id自增

        ②、NONE :不设置id生成策略,一般和第一个一样都是用数据库自增的

        ③、 ASSIGN_ID :雪花算法生成id

        ④、ASSIGN_UUID:以UUid算法生成id

                ASSIGN_UUID是自动生成的一个不重复的、长度为32位的字符串,也能在分布式系统中使用

                使用时需要注意:实体类的主键应该为long类型,表中主键类型设置为bigint类型,表中主键类型用bigint对应java中的long

                缺点比较明显:生成的主键是32位的字符串,长度过长占用空间而且还不能排序,查询性能也慢

 3.Unix时间戳是从1970年1月1日开始所经过的秒数,不考虑闰秒

4.使用UUid作为主键id的弊端

        ①、生成的id里面有字母

        ②、他是没有顺序的

5.雪花算法生成的id也是递增的,UUid的性能要比雪花算法差

6.为什么要用雪花算法而不用数据库递增

        ①、数据库的递增是靠数据库来实现的,容易给数据库带来压力,而优秀的架构设计往往想办法给数据库减轻压力(Redis缓存,内存缓存)

        ②、分表时用数据库递增会有重复主键

7.分布式id生成策略

为什么用分布式id:有多个库且要保证这些库id是唯一的

        ①、雪花算法(弊端:id太长)

        ②、redis Incr:每次新增从redis中去拿数据,每次加一且具有原子性(不会重复)(我们可以一次性从redis中取20条数据放本地缓存,用完之后再从数据库中取,这样只需要一次访问redis的io)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值