《Mysql学习mysql5.5 uuid做主键与int做主键的性能实测》要点:
本文介绍了Mysql学习mysql5.5 uuid做主键与int做主键的性能实测,希望对您有用。如果有疑问,可以联系我们。
MYSQL应用表类型:InnoDB
MYSQL应用数据量:100W条
MYSQL应用
MYSQL应用第一种情况:
MYSQL应用
MYSQL应用主键采用uuid 32位.
MYSQL应用
MYSQL应用运行查询语句1:SELECT COUNT(id) FROM test_varchar;
MYSQL应用运行查询语句2:SELECT * FROM test_varchar WHERE vname='00004629-b052-11e1-96aa-002655b28d7b';
MYSQL应用运行查询语句3:SELECT * FROM test_varchar WHERE id='00004599b05211e196aa002655b28d7b';
MYSQL应用
MYSQL应用
MYSQL应用语句1消耗时间平均为:2.7秒;
MYSQL应用语句2消耗时间平均为:3秒;
MYSQL应用语句3消耗时间平均为:0秒;(多方测试,条件里只要有主键ID,查询速度毫秒级都显示000.测试的ID值,有前一百条的,也有后90多万条的.查询时间完全一样,毫秒级都为000)
MYSQL应用
MYSQL应用第二种情况:
MYSQL应用
MYSQL应用主键采用bigint,使用uuid_short()产生数据,数据为有序列的纯数字(22461015967875697).(其相当于自动增长,只是固定的基数值较大而已.)
MYSQL应用
MYSQL应用
MYSQL应用运行查询语句1:SELECT COUNT(id) FROM test_long;
MYSQL应用运行查询语句2:SELECT * FROM test_long WHERE vname='d7f28a24-b053-11e1-96aa-002655b28d7b';
MYSQL应用运行查询语句3:SELECT * FROM test_long WHERE id='22461015967875702';
MYSQL应用
MYSQL应用
MYSQL应用语句1消耗时间平均为:1.2秒;
MYSQL应用语句2消耗时间平均为:1.40秒;
MYSQL应用语句3消耗时间平均为:0秒;(多方测试,条件里只要有主键ID,查询速度毫秒级都显示000.测试的ID值,有前一百条的,也有后90多万条的.查询时间完全一样,毫秒级都为000)
MYSQL应用
MYSQL应用第三种情况:
MYSQL应用
MYSQL应用运行查询语句1:SELECT COUNT(id) FROM test_int;
MYSQL应用运行查询语句2:SELECT * FROM test_int WHERE vname='c80f8427-b059-11e1-96aa-002655b28d7b';
MYSQL应用运行查询语句3:SELECT * FROM test_int WHERE id=900000;
MYSQL应用
MYSQL应用主键采用mysql自带的自动增长,数据为纯数字(1,2,3,4,5……).
MYSQL应用
MYSQL应用查询语句1消耗时间平均为:1.07秒;
MYSQL应用查询语句2消耗时间平均为:1.31秒;
MYSQL应用查询语句3消耗时间平均为:0秒;(多方测试,条件里只要有主键ID,查询速度毫秒级都显示000.测试的ID值,有前一百条的,也有后90多万条的.查询时间完全一样,毫秒级都为000)
MYSQL应用
MYSQL应用总结:由此可见,mysql InnoDB 主键采用自动增长性能较高.
MYSQL应用笔者自语:平时的项目开发,sql语句的条件里有ID的,占多数,没有的占少数.虽然以上的测试表明只要条件语句里有主键ID,主键类型不一样,查 询时间完全一样.但是,你不能保证你的项目中所有sql语句的条件里都有ID,因此…………主键的类型该采用哪种,相信各位看官已经明白.
MYSQL应用
MYSQL应用
MYSQL应用---------------------------------------------------------
MYSQL应用
MYSQL应用
数据库:mysql5.5MYSQL应用表类型:MyISAM
MYSQL应用数据量:100W条
MYSQL应用
MYSQL应用
MYSQL应用为了少写一些字,节省时间,此测试所使用的表和sql语句同上,此处只记录消耗时间.
MYSQL应用
MYSQL应用
MYSQL应用第一种情况:
MYSQL应用主键采用uuid 32位.
MYSQL应用
MYSQL应用
MYSQL应用语句1消耗时间平均为:0秒;
MYSQL应用语句2消耗时间平均为:0.53秒;
MYSQL应用语句3消耗时间平均为:0秒;(多方测试,条件里只要有主键ID,查询速度毫秒级都显示000.测试的ID值,有前一百条的,也有后90多万条的.查询时间完全一样,毫秒级都为000)
MYSQL应用
MYSQL应用
MYSQL应用第二种情况:
MYSQL应用主键采用bigint,使用uuid_short()产生数据,数据为有序列的纯数字(22461015967875697).(其相当于自动增长,只是固定的基数值较大而已.)
MYSQL应用
MYSQL应用
MYSQL应用语句1消耗时间平均为:0秒;
MYSQL应用语句2消耗时间平均为:0.51秒;
MYSQL应用语句3消耗时间平均为:0秒;(多方测试,条件里只要有主键ID,查询速度毫秒级都显示000.测试的ID值,有前一百条的,也有后90多万条的.查询时间完全一样,毫秒级都为000)
MYSQL应用
MYSQL应用第三种情况:
MYSQL应用主键采用mysql自带的自动增长,数据为纯数字(1,2,3,4,5……).
MYSQL应用
MYSQL应用语句1消耗时间平均为:0秒;
MYSQL应用语句2消耗时间平均为:0.48秒;
MYSQL应用语句3消耗时间平均为:0秒;(多方测试,条件里只要有主键ID,查询速度毫秒级都显示000.测试的ID值,有前一百条的,也有后90多万条的.查询时间完全一样,毫秒级都为000)
MYSQL应用
MYSQL应用
MYSQL应用总结:由此可见,mysql MyISAM 主键采用自动增长性能比其他有微弱的优势.测试数据为100w,如果是1000W 1亿,我想这个优势会拉大,如果你还有外键关联查询,这个优势就更明显了.当然,如果你设计的系统,数据量还没有超过100W,你用啥主键类型都无所谓. 我测试电脑是笔记本,如果是专业的服务器,估计100W条,mysql MyISAM 的这些测试,根本都测不出来时间差.
转载请注明本页网址:
http://www.vephp.com/jiaocheng/6165.html