安全性高:UUID不暴露数据库中的记录数量,安全性更好。 可移植性:UUID可以在不同的数据库之间迁移而不会产生冲突。 缺点 存储空间大:UUID是128位,占用的存储空间比INT类型大很多。 索引性能差:由于UUID是随机生成的,不是按顺序递增的,对索引的支持不如INT类型。 如何选择 在实际应用中,我们应该根据具体情况来选择...
分别是 user_auto_key, user_uuid, user_random_key, 分别表示自动增长的主键,uuid作为主键,随机 ke...
分别是 user_auto_key, user_uuid, user_random_key, 分别表示自动增长的主键,uuid作为主键,随机 ke...
--初始化int自增CREATEPROCEDURE`int_init`(insint)BEGINDECLAREctINT;SETct=1;whilect<s DOinsertintoid_int( name)VALUES( concat('aaa',ct));setct=ct+1;ENDWHILE;END--初始化uuid20CREATEPROCEDURE`uuid20_init`(insint)BEGINDECLAREctINT;SETct=1;whilect<s DOinsertintoid_uuid20(id ,name)VALUES...
偶然的机会,得知mysql主键的类型采用 varchar 存UUID 的查询性能没有int型做主键好。网上查询大量资料,都是停留在理论上的,因此,自己写了代码进行实测,以下结果仅供参考,不具备权威性。 三个表的字段,除了主键ID 分别采用varchar,bigint 和自动增长bigint不同外,其他三个字段都为 varchar 36位 ...
通过技术框架(Springboot+jdbcTemplate+junit+hutool),在相同环境中写入同等数量的数据,分析插入效率。程序采用随机生成的数据,包括名字、邮箱、地址等。程序写入结果将展示 user_key_auto、user_random_key 和 user_uuid 表的插入情况。同时,通过测试插入 10W 数据,对比在数据量 100W 左右时,UUID ...
as the values are not sequential (they're spread out all over the place). The UUID() function in MySQL addresses this by generating the first part of the UUID from the current timestamp. Therefore I've copied that idea of having the unix timestamp at the start of my BIGINT. Will my...
1. UUID作为主键的考量 UUID是一种128位的标识符,通常由32个十六进制数字组成,分为五组,形式如8-4-4-4-12。UUID的优点是全局唯一性,可以在不同的系统、不同的时间生成而不会冲突。然而,使用UUID作为MySQL主键有以下几个缺点: 存储效率:UUID占用的空间比整数型主键(如INT或BIGINT)要大得多。这增加了数据库...
继续拼了,因为traceId的唯一性要求不高,偶然重复也没大问题,所以直接拿JDK UUID.randomUUID()的低位long(按UUID规范,高位的long被置了4个默认值的bit,低位只被设置3个bit),或者不用UUID.randomUUID()了,直接SecureRandom.nextLong(),不浪费了那3个bit。
对于小型数据库,使用整型(INT)作为ID字段的数据类型通常足够,因为它既能满足性能需求,又能节省存储空间。 对于大型数据库或需要存储非常大ID值的场景,可以考虑使用大整型(BIGINT)或UUID类型。 如果需要简化数据插入操作或确保ID值的唯一性,可以选择自增整型(AUTO_INCREMENT)。