内存表的极速响应,Memory 引擎的性能调优,真的蛮值得一试。Memory 引擎就是把数据直接丢内存里,读取速度自然飞快。嗯,缺点也,重启就没了,适合那些临时数据或者只读为主的场景。像缓存排行榜、临时表,用它挺合适。
Memory 存储格式用的是定长行,占内存是稳的,不像变长那种要来回找空间。而且因为是内存里的,SELECT
操作几乎是秒回。只要你对数据持久性要求不高,它确实还挺香的。
想用好 Memory 引擎,几个点要注意:别存太大数据,不然内存吃紧你就知道了;字段类型用定长,比如CHAR
比VARCHAR
更合适;别忘了,它的索引也在内存里,别太贪心建太多。响应快是真快,但也别用错场景。
对 Memory 有兴趣的可以看看这篇 MySQL 数据库入门:MEMORY 存储引擎详解,讲得比较细,基础也覆盖得全。另外像 InnoDB 存储引擎优化、SequoiaSQL 这种跟存储引擎相关的,也可以顺带了解下,横向对比会更有感觉。
如果你手上有些数据是临时算出来的、读多写少,那 Memory 引擎可以大胆用一波。优化点不多,但搞懂几个关键就能跑得挺稳。