一、业内常用ID策略

目前业界内普片使用3类ID策略,分别是user_auto_key(自增)、user_uuid(UUID)、user_random_key(段随机),这三种ID策略适用不同的场景,导致数据库性能扩展性也是不同的,带来的问题也不同.

二、性能区别

从下图插入数据耗时情况可以看出,UUID插入的速递最慢,UUID会导致其他问题, 比如: mysql索引B树重新平衡影响索引性能,UUID更大做索引更浪费内存,user_random_key性能于user_auto_key性能差距不大.
image.png
image.png

三、安全性&扩展性

使用user_auto_key最有利于构建索引,不容易发生B树重构,插入性能最高. 但是,他有2个缺点. 第一点、可能会被竞争对手爬库,user_random_key原理是段随机,只是降低被爬库风险,还是需要做防爬虫策略. 第二点、不利于分库分表. 综合我们在大型系统最合适选择user_random_key.

四、ID策略总结

策略名称 适用场景 优点 缺点
UUID 数据规模小的业务 简单 1、可能导致B树索引重构 2、占用内存
auto_key 适合大规模数据,但是对安全要求不高的场景 简单、高效 可能安全问题
random_key 适合大规模数据,但是对安全要求不高的场景 相对复杂、高效 降低被爬库风险