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 8.2.1.18, “How to Avoid Full Table Scans”. For implementation
details of the different types of MEMORY
indexes, see Section 8.3.8, “Comparison of B-Tree and Hash Indexes”.