How does MySQL allocate memory for MyISAM tables?
MySQL only caches the indexes in MySQL’s memory, not the data. The data is only cached by the underlying operating system’s filesystem caches. The most important value to tune in my.cnf is key_buffer_size which will allocate memory for MyISAM to cache indexes.
What should MySQL thread concurrency be in InnoDB?
My recommendation is to start with innodb_thread_concurrency=0, but you might find it necessary to explicitly set it to be somewhere between 4-8 depending on your workload and version of MySQL. I agree with Aaron (+1) in that you should use InnoDB because you cannot cache data for MyISAM.
Why is MyISAM not good for crash recovery?
In this day and age, there are less than a handful of reasons to use use MyISAM and MyISAM is not good for concurrency, data integrity, or crash recovery. If you switch to InnoDB, the most important setting is innodb_buffer_pool_size which is the internal memory cache that will cache data pages & indexes.
When to upgrade MySQL from 5.1 to 5.5?
You should upgrade to MySQL 5.5 because there are new settings to engage multiple cores by means of increased hyperthreading. The options exist in MySQL 5.1 starting with 5.1.38 but only in the InnoDB Plugin. It is simpler and more practical to upgrade to 5.5 rather than attempting to wedge in the InnoDB Plugin.
How does MyISAM perform on a large table?
– MyISAM performs well on medium or large tables with mostly read operations. – MyISAM performs poorly on large and very large tables. The MyISAM Key Cache (also called the Key Buffer), represents the amount of memory pre-allocated for storing index data of MyISAM tables.
How does MyISAM affect the performance of MySQL?
Very large tables will see a significant delay in performance when data needs to be written to a MyISAM table. Unlike InnoDB, there is little that can be adjusted on the server level to optimize MyISAM tables for performance. Instead, MyISAM-based performance relies heavily on query construction using best practices.
Is there a performance penalty for using MyISAM?
The performance penalty for using table-locking based engines like MyISAM become more laborious as the row count in the table grows. Very large tables will see a significant delay in performance when data needs to be written to a MyISAM table.