剛開始使用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$$
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