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