顺序的ID占用的空间比随机ID占用的空间小。
缘由是数据库主键和索引索引使用B+树的数据结构进行存储,顺序ID数据存储在最后一个节点的最后的位置,前面的节点数据都是满的。随机ID存储时可能会出现节点分裂,致使节点多了,可是每一个节点的数据量少了,存储到文件系统中时,不管节点中数据是否是满的都会占用一页的空间。因此所致使空间占用较大。java
自增的ID能够知足大部分业务场景,可是在一些特殊场景中并不合适,只举部分例子mysql
UUID值由本机Mac地址和时间戳等因素决定,UUID出现重复几率极几乎能够忽略不计。算法
若是需求是只保证惟一性,那么UUID也是可使用的,可是按照上面的分布式id的要求, UUID实际上是不能作成分布式id的,缘由以下:sql
package com.one.util; import java.util.UUID; public class Test { public static void main(String[] args) { String uuid= UUID.randomUUID().toString().replace("-", "").toLowerCase(); System.out.println("UUID的值是:"+uuid); } }