2019/4/6 10:38:24
MySQL支持的(de)兩種主要表存儲格式MyISAM,InnoDB,上(shàng)個(gè)月(yuè)做個(gè)項目時,先使用(yòng)了InnoDB,結果速度特别慢(màn),1秒鍾隻能(néng)插入10幾條。後來換成MyISAM格式,一秒鍾插入上(shàng)萬條。當時覺的(de)這兩個(gè)表的(de)性能(néng)也(yě)差别太大(dà)了吧(ba)。後來自己推測,不應該差别這麽慢(màn),估計(jì)是寫的(de)插入語句有(yǒu)問題,決定做個(gè)測試:
測試環境:Redhat Linux9,4CPU,内存2G,MySQL版本爲4.1.6-gamma-standard
測試程序:Python+Python-MySQL模塊。
測試方案:
1、MyISAM格式分(fēn)别測試,事務和(hé)不用(yòng)事務兩種情況:
2、InnoDB格式分(fēn)别測試AutoCommit=1(不用(yòng)begin transaction和(hé)用(yòng)begin transaction模式),AutoCommit=0 (不用(yòng)begin transaction和(hé)用(yòng)begin transaction模式)四種情況。測試方法爲插入10000條記錄。爲了測試不互相(xiàng)影響,單獨建立了專用(yòng)的(de)測試表,建表語句如(rú)下:
1、MyISAM不用(yòng)事務表:
CREATE TABLE `MyISAM_NT` (
`TableId` int(11) NOT NULL default '0',
`TableString` varchar(21) NOT NULL default ''
) ENGINE=MyISAM;
2、MyISAM用(yòng)事務表:
CREATE TABLE `MyISAM_TS` (
`TableId` int(11) NOT NULL default '0',
`TableString` varchar(21) NOT NULL default ''
) ENGINE=MyISAM;
3、InnoDB關閉AutoCommit,不用(yòng)事務:
CREATE TABLE `INNODB_NA_NB` (
`TableId` int(11) NOT NULL default '0',
`TableString` varchar(21) NOT NULL default ''
) ENGINE=InnoDB;
深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04
咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967