8.7 优化 MEMORYtable

考虑将MEMORYtable 用于经常访问,只读或很少更新的非关键数据。在实际工作量下,将您的应用程序与等效的InnoDBMyISAMtable 进行基准测试,以确认任何额外的性能值得承担丢失数据的风险,或者值得在应用程序启动时从基于磁盘的 table 复制数据的开销。

为了使MEMORYtable 具有最佳性能,请检查针对每个 table 的查询类型,并指定用于每个关联索引(B 树索引或哈希索引)的类型。在CREATE INDEX语句上,使用USING BTREEUSING HASH子句。对于通过>BETWEEN等运算符进行大于或小于比较的查询,B 树索引速度很快。哈希索引仅适用于通过=运算符查找单个值或通过IN运算符查找有限值的查询。有关为什么USING BTREE通常比默认USING HASH更好的选择,请参见第 8.2.1.20 节,“避免全 table 扫描”。有关MEMORY索引的不同类型的实现细节,请参见第 8.3.8 节“ B 树和哈希索引的比较”