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.