Mysql 用UUID做主键可行么

Mysql 用UUID做主键可行么,第1张

作为主键,UUID长度过长,主键索引KeyLength长度过大,而影响能够基于内存的索引记录数量,进而影响基于内存的索引命中率,而基于硬盘进行索引查询性能很差。严重影响数据库服务器整体的性能表现。 建议,

如果考虑分布式,可以仿造MongoDB建立索引,能有效实现服务器同步,KeyLength也很小。如果使用UUID进行数据同步管理,需要对UUID字符串进行Djb的Hash算法,然后对Int/Long类型的哈希数值进行索引。第一次检索,通过UUIDHashCode将结果集范围缩小,再使用UUID定位具体数据。这样性能能高很多。使用Int类型的ID作为主键。UUID不作为主键,而仅作为数据同步的标记字段被使用。

decima(6,2)表示总长度为6,小数位数占二位的数值。

decima是指带固定精度和小数位数的数值数据类型。

double是mysql浮点类型数据的一种,double(6,2)表示规定显示的值不会超过6位数字,小数点后面带有2位数字。这个是理论值,实际的值根据 *** 作系统的硬件影响可能会稍微小点。m代表数值长度,d代表精度,当m和d没有写的时候,值根据硬件大小来决定,可精确到15位小数。

扩展资料:

对SQL Server而言,decimal和numeric视为相同的类型,它们可用来保存具有小数点而且数值确定的数值,不像float和real是用来保存近似值。

p值称为此数值的精确度,例如:decimal(10,3)表示共有7位整数3位小数,此例的精确度为10位。此类型的列可保存的值范围为1038-1到-1038-1之间。其占用存储空间依精确度不同而不同,下表给出Decimal类型变量精确度和占用空间的关系。

参考资料来源:百度百科-Decimal


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7264871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存