mysql UUID和int做主键插入速度对比
2013-11-27 00:00
579 查看
刚开始使用mysql,要是用非常大的数据结构,得知mysql没有uuid的数据类型,只能使用varchar(36),到底性能怎么样呢,网上各有说辞,做个测试看看吧,有没有差距,到底差多少。
下面是测试代码,改下循环体中的插入语句分别测试uuid在innodb和myisam和int在innodb和myisam下插入1000条数据所用时间。
这个是UUID插入10000条数据测试,耗时情况如下:
inno-
执行耗时 : 6 min 38 sec
传送时间 : 0 sec
总耗时 : 6 min 38 sec
myisam-
执行耗时 : 0.388 sec
传送时间 : 0 sec
总耗时 : 0.389 sec
innoDB表要排序,所以非常慢,myisam到很速度。
这个是int插入10000条数据测试。耗时如下:
inno-
执行耗时 : 6 min 39 sec
传送时间 : 0 sec
总耗时 : 6 min 39 sec
myisam-
执行耗时 : 0.268 sec
传送时间 : 0.001 sec
总耗时 : 0.270 sec
innodb下也很慢,几乎和uuid耗时一样。myisam就不同了使用int比使用字符串的uuid快了40%以上,所以大家使用时候还是小心为妙。
下面是测试代码,改下循环体中的插入语句分别测试uuid在innodb和myisam和int在innodb和myisam下插入1000条数据所用时间。
DELIMITER $$ DROP PROCEDURE IF EXISTS uuidinno; CREATE PROCEDURE uuidinno() BEGIN DECLARE j INT DEFAULT 0; WHILE j < 10000 DO INSERT INTO uuidtest_inno(id) VALUES (UUID()); SET j = j + 1; END WHILE; END$$
这个是UUID插入10000条数据测试,耗时情况如下:
inno-
执行耗时 : 6 min 38 sec
传送时间 : 0 sec
总耗时 : 6 min 38 sec
myisam-
执行耗时 : 0.388 sec
传送时间 : 0 sec
总耗时 : 0.389 sec
innoDB表要排序,所以非常慢,myisam到很速度。
这个是int插入10000条数据测试。耗时如下:
inno-
执行耗时 : 6 min 39 sec
传送时间 : 0 sec
总耗时 : 6 min 39 sec
myisam-
执行耗时 : 0.268 sec
传送时间 : 0.001 sec
总耗时 : 0.270 sec
innodb下也很慢,几乎和uuid耗时一样。myisam就不同了使用int比使用字符串的uuid快了40%以上,所以大家使用时候还是小心为妙。
相关文章推荐
- mysql5.5 uuid做主键与int做主键的性能实测
- MySQL之——mysql5.5 uuid做主键与int做主键的性能实测
- mysql5.5 uuid做主键与int做主键的性能实测
- mysql5.5 uuid做主键与int做主键的性能实测
- MySql中测试GUID 与Int自增主键 性能对比 总结适用场景
- mysql5.5 uuid做主键与int做主键的性能实测
- Mysql 使用UUID和自增主键ID性能对比测试
- Mysql忽略主键冲突,避免重复插入的几种方式
- MySQL自增主键删除后插入新记录主键重复问题
- PHP大批量插入数据库的3种方法和速度对比
- ibaits插入即获取主键(mssql,mysql,oracle)
- MySql 使用foreach标签 批量插入list中数据,主键自增,插入
- mysql 忽略主键冲突、避免重复插入的几种方式
- 与MSSQL对比学习MYSQL的心得(八)--插入 更新 删除
- jsp 插入mysql 数据表速度慢
- MyBatis+MySQL 返回插入的主键ID
- mysql忽略主键冲突、避免重复插入的几种方式
- MySQL——索引的使用对查询、插入速度的影响
- mysql 明明没有相同的值,插入时却提示主键冲突
- MyBatis+MySQL 返回插入的主键ID