Guid做数据库主键和自增数字做主键的区别

MySQL不适合使用Guid做主键,因为InnoDB引擎默认把主键设置为聚集索引,强制的。而Guid生成的值是不连续的。

SQLServer使用Guid类型作为主键,不要把主键设置为聚集索引。

Guid做主键的优势:

对于分布式系统,数据库分库分表不需要担心自增主键的序列问题。高并发插入的性能比自增主键好(自增序列需要维持顺序)。

全局唯一,假如之前部署了多套不同的系统要合并,不用担心主键在不同系统重复问题。

不可预测,如果id是自增,可以恶意预测是否存在id-1或者id+1这种场景。

缺点:占用空间大。看不懂。

你可能感兴趣的:(Database,数据库,sqlserver,sql)