思考:为什么ID需要使用雪花算法?
使用雪花算法之前,先理解什么是雪花算法?
简单理解:生成一个不重复、唯一、自增的字符串作为ID。
作用:它会帮你生成实体类,实体类的ID不会用数据库表中的ID,就是不会使用数据库表中ID自动递增,而是用MybatisPlus帮我们去生成ID的。
抬杠下,为什么不用数据库表中自动递增,而是使用雪花算法生成ID呢?
形象说明:比如数据库某个表中的ID有1,2,3也就三行数据,但是后期数据库要迁移呢,迁移之后的数据库里面的自动递增就不一定是1,2,3了;如果觉得看起来一头雾水,看这,比如:我需要分库分表,一个表中有二十条数据,也就是ID从1-20,这时我要把它分成四个表,也就是每张表的数据只有五条,如果用数据库表自动递增,每张表中的5条数据ID就是从1-5,那么我此时要数据为2的ID,请问它是哪张表里的数据呢?
不知道,这就需要用雪花算法了。
经验之谈告诫:在分布式项目中,一般不要用数据库中ID的自动递增,用全局唯一、不重复的ID。
PS 【 迁移:就是一个数据库导入另外一个数据库】