MySQL 9.0 发行说明
考虑将 MEMORY
表用于经常访问的非关键数据,并且这些数据是只读的或很少更新。在实际工作负载下,将您的应用程序与等效的 InnoDB
或 MyISAM
表进行比较,以确认任何额外的性能是否值得数据丢失的风险,或在应用程序启动时将数据从基于磁盘的表复制到内存表所带来的开销。
为了使 MEMORY
表获得最佳性能,请检查针对每个表的查询类型,并为每个关联的索引指定要使用的类型,无论是 B-Tree 索引还是哈希索引。在 CREATE INDEX
语句中,使用 USING BTREE
或 USING HASH
子句。B-Tree 索引对于通过诸如 >
或 BETWEEN
之类的运算符进行大于或小于比较的查询速度很快。哈希索引仅对于通过 =
运算符查找单个值,或通过 IN
运算符查找一组受限的值的查询速度很快。至于为什么 USING BTREE
通常比默认的 USING HASH
更好,请参阅 第 10.2.1.23 节,“避免全表扫描”。有关不同类型 MEMORY
索引的实现细节,请参阅 第 10.3.9 节,“B-Tree 索引和哈希索引的比较”。