数据库主键性能对比: 测试表:id_int()、 初始化100w条数据的存储过程: 数据插入过程能发现int自增的插入速度明显高出另外两个,uuid()函数调用肯定没有自增快。不过相较于插入,我更关注查询的性能对比 count: 长整形的效率明显 ...
自增ID相对UUID来说,自增ID主键性能高于UUID,UUID维护成本高,单表的规模一般要保持在千万级别,但有符号int最大可以支持到约 亿,对于目前来说已经足够了,不会达到 亿上限。如果你觉得要加大预留量,可以把主键改为改为无符号int,上限为 亿,这个预留量已经是非常的充足了。 ...
2019-06-09 17:30 0 910 推荐指数:
数据库主键性能对比: 测试表:id_int()、 初始化100w条数据的存储过程: 数据插入过程能发现int自增的插入速度明显高出另外两个,uuid()函数调用肯定没有自增快。不过相较于插入,我更关注查询的性能对比 count: 长整形的效率明显 ...
偶然的机会,得知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 ...
知其然,知其所以然。在看到生成UUID的代码,后带给我的百度结合自己的经验再写下来的区别 一.UUID做主键: 优点: 缺点: 二.int主键: 优点: 缺点: ...
修改结构,将主键UUID改为主键自增长 --创建备份表结构 -- 插入备份数据 -- 删除原表数据 -- 修改主键类型,将varchar改为bigInt,并设置为自增长 -- 将备份数据出主键外的所有数据插入修改后的表 ...
order by ... cast(sort as signed) 或 convert(sort,signed) (sort为待转化字段) ...
其实针对使用自增长还是UUID,大家讨论最多的就是速度和存储空间,这里我加入了安全性和分布式,具体对比如下: 使用自增长做主键的优点:1、很小的数据存储空间2、性能最好3、容易记忆使用自增长做主键的缺点:1、如果存在大量的数据,可能会超出自增长的取值范围2、很难(并不是不能)处理 ...
用uuid生成20位的主键 另一种方法: 因为数据库中有字母 需要排序的时候去除字母,重新取最大值,然后加1算作新的主键 或者 使用MySQL函数CAST/CONVERT: mysql为我们提供了两个类型转换函数:CAST和CONVERT ...