8.7 优化 MEMORYtable
考虑将MEMORY
table 用于经常访问,只读或很少更新的非关键数据。在实际工作量下,将您的应用程序与等效的InnoDB
或MyISAM
table 进行基准测试,以确认任何额外的性能值得承担丢失数据的风险,或者值得在应用程序启动时从基于磁盘的 table 复制数据的开销。
为了使MEMORY
table 具有最佳性能,请检查针对每个 table 的查询类型,并指定用于每个关联索引(B 树索引或哈希索引)的类型。在CREATE INDEX语句上,使用USING BTREE
或USING HASH
子句。对于通过>
或BETWEEN
等运算符进行大于或小于比较的查询,B 树索引速度很快。哈希索引仅适用于通过=
运算符查找单个值或通过IN
运算符查找有限值的查询。有关为什么USING BTREE
通常比默认USING HASH
更好的选择,请参见第 8.2.1.20 节,“避免全 table 扫描”。有关MEMORY
索引的不同类型的实现细节,请参见第 8.3.8 节“ B 树和哈希索引的比较”。