一、业内常用ID策略
目前业界内普片使用3类ID策略,分别是user_auto_key(自增)、user_uuid(UUID)、user_random_key(段随机),这三种ID策略适用不同的场景,导致数据库性能扩展性也是不同的,带来的问题也不同.
二、性能区别
从下图插入数据耗时情况可以看出,UUID插入的速递最慢,UUID会导致其他问题, 比如: mysql索引B树重新平衡影响索引性能,UUID更大做索引更浪费内存,user_random_key性能于user_auto_key性能差距不大.
三、安全性&扩展性
使用user_auto_key最有利于构建索引,不容易发生B树重构,插入性能最高. 但是,他有2个缺点. 第一点、可能会被竞争对手爬库,user_random_key原理是段随机,只是降低被爬库风险,还是需要做防爬虫策略. 第二点、不利于分库分表. 综合我们在大型系统最合适选择user_random_key.
四、ID策略总结
策略名称 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
UUID | 数据规模小的业务 | 简单 | 1、可能导致B树索引重构 2、占用内存 |
auto_key | 适合大规模数据,但是对安全要求不高的场景 | 简单、高效 | 可能安全问题 |
random_key | 适合大规模数据,但是对安全要求不高的场景 | 相对复杂、高效 | 降低被爬库风险 |