mysql UUID和int作主键插入速度对比

刚开始使用mysql,要是用很是大的数据结构,得知mysql没有uuid的数据类型,只能使用varchar(36),到底性能怎么样呢,网上各有说辞,作个测试看看吧,有没有差距,到底差多少。 mysql

下面是测试代码,改下循环体中的插入语句分别测试uuid在innodb和myisam和int在innodb和myisam下插入1000条数据所用时间。 sql

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%以上,因此你们使用时候仍是当心为妙。 ui

相关文章
相关标签/搜索