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

相關文章
相關標籤/搜索