順序的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); } }