提交订单性能优化系列之017-数据库ID为int(10)类型与long(20)类型的对比


概括总结

int(10)类型的性能比long(20)类型的性能好4.01%(差别不明显)。


017版本更新说明

这一版本有两个SQL文件:

Version017IntegerId.sql:其中的ID都是int(10)类型的

Version017LongId.sql:其中的ID都是long(20)类型的

另外一个比较重要的改动是,之前的版本是测试10次,然后取平均值;这次的版本是测试12次,去掉一个高大值,去掉一个最小值,然后取平均值。


测试结果

统计10次测试的平均值之后:

Version017IntegerId 提交每个订单平均耗时的纳秒数: 4250404

Version017LongId 提交每个订单平均耗时的纳秒数: 4086353

Version017IntegerId 每秒钟可以提交的订单数: 235

Version017LongId 每秒钟可以提交的订单数: 244

性能差别为:(4250404 - 4086353) / 4086353 * 100% = 4.01%,即 “int(10)类型” 比 “long(20)类型” 性能好4.01%

【备注】:不同的机器上的测试结果会不一样,以上测试结果仅供参考。


测试结果说明

int的性能比long好,这个是可以理解的,一个占4字节,一个占8字节。但是从这个例子来看,对性能的影响并不大。当然,能用int还是推荐用int

数据库自增ID设置为int(10)类型时,最多可以存储100亿条数据,而设置为long(20)类型时,最多可以存储100亿 * 100亿条数据。但是对于单个数据库来说,100亿条数据已经是相当大的数了,大部分场景下都应该够用了。

做这个测试是因为我们公司一直以来都是用的long(20),作为一个惯例保留下来了。这次想测一测到底有没有性能差别,目前来看,差异并不明显。但是这次测试的数据量比较小,也许差别在数据量大了之后才能体现出来,所以以后可能还会再测试一次数据量大的。


源码

017版本的github源码在这里,如果不知道怎样运行项目,请参考这里


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值