Consider using MEMORY tables for noncritical
data that is accessed often, and is read-only or rarely updated.
Benchmark your application against equivalent
InnoDB or MyISAM tables
under a realistic workload, to confirm that any additional
performance is worth the risk of losing data, or the overhead of
copying data from a disk-based table at application start.
For best performance with MEMORY tables,
examine the kinds of queries against each table, and specify the
type to use for each associated index, either a B-tree index or a
hash index. On the CREATE INDEX
statement, use the clause USING BTREE or
USING HASH. B-tree indexes are fast for queries
that do greater-than or less-than comparisons through operators
such as > or BETWEEN.
Hash indexes are only fast for queries that look up single values
through the = operator, or a restricted set of
values through the IN operator. For why
USING BTREE is often a better choice than the
default USING HASH, see
Section 7.2.1.4, “How to Avoid Table Scans”. For implementation
details of the different types of MEMORY
indexes, see Section 7.3.7, “Comparison of B-Tree and Hash Indexes”.