【发布时间】:2014-02-12 16:09:05
【问题描述】:
我正在构建一个需要一些查找表的网络服务。这些存储在 MariaDB 中。我希望主表从几百个值开始,但随着时间的推移,一些会变得不活动,而另一些会被添加。服务只需要活动值,其余的用于审计目的。
因此,我正在考虑在 MEMORY 引擎中保存一个表的副本,并且只加载它所需的所需记录子集,并定期更新它并进行更改。
这似乎是减少我的 Web 服务的查询开销和检索时间的明智途径吗?还有其他更合适的潜在解决方案吗?
【问题讨论】:
-
InnoDB 默认将工作数据集保存在内存中。它通过
innodb_buffer_pool变量设置来控制。简短的回答 - 不,这不值得麻烦。 MySQL 尝试为您做很多开箱即用的查询优化,您只需要知道您正在使用什么(哪个引擎)以及配置什么以获得更好的性能。 InnoDB 会足够快,我有一个中型项目,在一张表中有大约 6 亿条记录,InnoDB 选择的值恰到好处。 -
很高兴知道 - 很高兴你把这个作为答案
标签: mysql performance mariadb in-memory