偶然的机会,得知mysql主键的类型采用 varchar 存UUID 的查询性能没有int型做主键好。网上查询大量资料,都是停留在理论上的,因此,自己写了代码进行实测,以下结果仅供参考,不具备权威性。 三个表的字段,除了主键ID 分别采用varchar,bigint 和自动增长bigint ...
不易于存储:UUID太长, 字节 位,通常以 长度的字符串表示,很多场景不适用。 信息不安全:基于MAC地址生成UUID的算法可能会造成MAC地址泄露,这个漏洞曾被用于寻找梅丽莎病毒的制作者位置。 ID作为主键时在特定的环境会存在一些问题,比如做DB主键的场景下,UUID就非常不适用: MySQL官方有明确的建议主键要尽量越短越好 , 个字符长度的UUID不符合要求。 对MySQL索引不利:如果 ...
2020-09-17 16:34 0 712 推荐指数:
偶然的机会,得知mysql主键的类型采用 varchar 存UUID 的查询性能没有int型做主键好。网上查询大量资料,都是停留在理论上的,因此,自己写了代码进行实测,以下结果仅供参考,不具备权威性。 三个表的字段,除了主键ID 分别采用varchar,bigint 和自动增长bigint ...
数据库:mysql5.5 表类型:InnoDB 数据量:100W条 第一种情况: 主键采用uuid 32位。 运行查询语句1:SELECT COUNT(id) FROM test_varchar; 运行查询语句2:SELECT * FROM test_varchar ...
数据库分库分表思路 - butterfly100 - 博客园 (cnblogs.com) 数据库分库分表思路 一. 数据切分 关系型数据库本身比较容易成为系统瓶颈, ...
使用Guid做主键和int做主键性能比较 在数据库的设计中我们常常用Guid或int来做主键,根据所学的知识一直感觉int做主键效率要高,但没有做仔细的测试无法 说明道理。碰巧今天在数据库的优化过程中,遇到此问题,于是做了一下测试。 测试环境: 台式电脑 Pentiun(R ...
在一个分布式环境中,我们习惯使用GUID做主键,来保证全局唯一,然后,GUID做主键真的合适吗? 其实GUID做主键本身没有问题,微软的很多项目自带DB都是使用GUID做主键的,显然,这样做是没有问题的。然而,SQL Server默认会将主键设置为聚集索引,使用GUID做聚集索引就有问题 ...
我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键。所以呢,这里总结一下,将两种数据类型做主键进行一个比较。 使用INT做主键的优点: 1、需要很小的数据存储空间,仅仅需要4 byte 。 2、insert和update操作时使用INT的性能比GUID好 ...
场景: 产品表数据量较大想用Guid做表的主键,并在此字段上建立聚簇索引。 因为Guid是随机生成的,生成的值大小是不确定的,每次生成的数可能很大,也可能很小。这样会影响插入的效率 1.NEWSEQUENTIALID和newid()的区别 NEWSEQUENTIALID() 和 NEWID ...
修改结构,将主键UUID改为主键自增长 --创建备份表结构 -- 插入备份数据 -- 删除原表数据 -- 修改主键类型,将varchar改为bigInt,并设置为自增长 -- 将备份数据出主键外的所有数据插入修改后的表 ...