MySQL InnoDB Insertion Faster Than MyISAM

bulk-insertinnodbmyisamMySQLperformance

I wrote code that inserts about 15 millions rows into tables in MyISAM and InnoDB for comparsion.

MyISAM and InnoDB are set up with no optimization configuration in /etc/mysql/my.cnf.

And tables are created with no indexes.

Insertion are done using statements like

INSERT INTO Table (columnA, columnB, columnC) VALUES (?, ?, ?)..." 
(10,000 (?, ?, ?)s) 

db.Exec(stmt, valueArgs...)

with valueArgs being the actual VALUES
It is widely believed that MyISAM is faster than InnoDB in insertion.

Baron Schwartz, author of the book High Performance MySQL, explained why in this post Mysql: Insert performance INNODB vs MYISAM.

However, in my experiment, I found out that InnoDB is actually faster than MyISAM. Could anyone give me some insights?

mysql  Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using  EditLine wrapper

Best Answer

InnoDB has been faster than MyISAM at everything for at least a decade. This shouldn't be a surprise in 2020. There hasn't been a compelling case for using MyISAM in a very long time.

On a workload that involves any concurrency, the difference will be even bigger.

Also, note that Baron's post is from 2012 - and it was probably borderline in terms of accuracy even back then.