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做主键将会添加到表上的其他索引中,因此会降低性能。