天天看點

序清單Innodb與Myisam表insert測試

現在很多公司在使用mysql時,由于資料量過大,都會使用分庫或分表,分片就意味着需要有分片的key,有些場景下會使用自增的值來作為主鍵并作為分片的Key,由于mysql本身支援并發,是以很多公司就使用mysql資料庫表中的自增ID作為發号器。有些公司使用innodb作為發号器表的存儲引擎,有些則使用mysiam的。

        本文主要介紹了這種場景下,對兩個存儲引擎的測試對比,共大家參考,以便在生産環境做出合理選擇。

歡迎轉載,請注明作者、出處。

作者:張正

blog:http://space.itpub.net/26355921 

QQ:176036317

如有疑問,歡迎聯系。

 1、表結構

CREATE TABLE `test_seq` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `sub` char(10) COLLATE utf8_unicode_ci NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

2、測試方法

采用mysqlslap , mysql官方社群版本5.5.30

insert語句:insert into test_seq(sub) values('aaaa');

3、測試結果

序清單Innodb與Myisam表insert測試

4、結果分析

    -從QPS上來看,兩者相差不大

    -從CPU消耗來看,Myisam略有優勢,CPU消耗略低于innodb

    -從IO消耗來看,MyIsam有明顯優勢,對IO消耗明顯低于innodb

   對IO的消耗差異如此之大,原因相信大家都清楚了,這樣的測試結果也是非常符合理論原理的。