项目框架:SpringCloud、Maven
1、在项目开发的时候,在操作对应数据库表时,都会涉及到一个问题,就是表唯一id问题;
2、如果是单个服务应用的话,这个无所谓,可以使用UUID工具类获取,当然获取到的是带横岗 ‘—’随机值,这个也不太友好,因为MySQL数据库的主键索引是使用是 b+树实现的,所有索引最后都会找到主键索引,然后查询到具体数据;
2.1)主键索引是有指针优化, 在做范围查询的时候,主键索引叶子结点可以通过指针关联能够有顺序性的范围查询
2.2)但是如果使用UUID,是随机数据,如果作为主键值时做范围查询效率比较低
3、在创建唯一id的时候,脑子里快速出现了一个方法:snowflake
当然这里只是推荐一个方便的工具,还有其他一些方便的方法:hutool 工具
git地址:https://gitee.com/dromara/hutool
具体说明:
自己去上面看看就知道了,很方便的一个工具;maven和gradle 都可以方便集成即可
4、如果使用mybatis的话,创建唯一id也是可以直接使用 IdWorker工具类使用方法 IdWorker.getNextId(); 获取唯一id,这个方法也是同样基于snowflake算法实现