1.自增主鍵,在mysql中應用最廣泛。
優點:
1>需要很小的數據存儲空間,僅僅需要4 byte。(bigint類型,是8 byte)
2>insert和update操作時使用INT的性能比UUID好,所以使用int將會提高應用程序的性能。
3>index和Join操作,int的性能最好。
4>容易記憶。
缺點:
1>如果經常有合並表的操作,就可能會出現主鍵重復的情況。
2>使用int數據范圍有限制。如果存在大量的數據,可能會超出int的取值范圍。
3>很難處理分布式存儲的數據表。
2。UUID
優點:
1>能夠保證獨立性,程序可以在不同的數據庫間遷移,效果不受影響。
2>保證生成的ID不僅是表獨立的,而且是庫獨立的,這點在你想切分數據庫的時候尤為重要。
缺點:
1>比較占地方,和INT類型相比,存儲一個UUID要花費更多的空間。
2>使用UUID后,URL顯得冗長,不夠友好。
3>沒有內置的函數獲取最新產生的UUID主鍵。
4>很難記憶。Join操作性能比int要低。
5>UUID做主鍵將會添加到表上的其他索引中,因此會降低性能。
