Fastest MySQL storage engine for storing data without concurrency

Guillaume Thomas picture Guillaume Thomas · Nov 22, 2010 · Viewed 11k times · Source

I'm using a mysql base to store results from various test over a large amount of data (hundred of millions recordings).

I'm the only user of the base so there won't be any problem of concurrency. I also want to use simple mathematical functions such as 'avg', 'std' etc

What is the best engine in your opinion for such a task?
I'm using InnoDB right now and it seems to me a bit heavy.

Regards

Guillaume

Answer

JonVD picture JonVD · Nov 22, 2010

Using an InnoDB table comes with an overhead of transactional support, rollbacks etc. If you don't need this support for transactions then you should really go with an MyISam table as it doesn't have any transactional support and can be faster for lookups etc. They have been doing a lot of work on InnoDB to bring it up to speed but there is always that overhead to contend with. I would suggest some further reading on the topic before switching.

With a table as large as your suggesting a memory table may cause you issues with performance and storage. For these sorts of tables I would recommend an MyISam structure or an InnoDB table with innodb_flush_log_at_trx_commit set to 0 (this switches to a mode where transactions are not commited to disk before control is returned to the caller).