首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无辜会从memcached中受益吗?

无辜会从memcached中受益吗?
EN

Server Fault用户
提问于 2011-04-18 04:37:42
回答 1查看 965关注 0票数 1

从- http://www.readwriteweb.com/hack/2011/04/you-got-nosql-in-mysql-memcach.php

(如果没有意义的话,请纠正我)

潜在利益

  1. 将复杂查询计算保存到分布式环境中
  2. 避免重复查询,并且在拥有多个服务器(超过5个数据库服务器)时可能会带来好处--查询一次,存储在memcached中,并将其永久重用。

innodb有内部缓冲池大小,

让memcached担任分销商有意义吗?

但是,我认为访问本地RAM要比在分布式环境中快得多。

有什么想法吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2011-04-18 16:44:05

这两种机制应该得到正确的平衡,而不应被视为相互排斥。原因是?

memcached是一种管理良好的内存方案,用于使用用户定义的标记存储数据。这就消除了对重磁盘I/O的需求。

InnoDB是一个兼容酸的存储引擎,它使用MVCC (多版本并发控制)来允许大量的事务读写。如果有足够的内存,可以将工作数据集全部存储在RAM中,从而消除磁盘I/O。

如果你把它们充分结合在一起,它们的全部力量最多也会抵消彼此的利益。我可以绝对肯定地声明,因为InnoDB将缓存访问的所有数据和索引页,而memcached将存储相同的用户数据。

Memcached将不会在其缓冲池中存储InnoDB将具有的索引页信息。

Memcached将只存储所需的确切数据片段。InnoDB数据页可能包含来自其他表行的数据。

InnoDB比memcached更容易检索数据范围,因为memcached必须作为额外步骤通过DB层。

这两种产品一定会变得像一对已婚夫妇(请原谅我的比喻,我已经幸福地结婚16年了)。每一位配偶都必须微调自己的长处,以适应对方,并在每件事上取得理想的平衡。InnoDB (坚强的妻子)和Memcached (坚强的丈夫)就是这样。

InnoDB可以根据所有数据和索引页之和或安装内存的75%分配所需的内存,以较小的值为准。Memcached虽然占用较少的前期内存,但可能需要某种形式的预测来计算要处理多少内存。

还请记住,当涉及到大量读取时,InnoDB中的数据和索引页将变得相当陈旧(但内容上是最新的),因为在InnoDB缓冲池之外访问InnoDB缓冲池之外的部分内存与驻留在InnoDB缓冲池中的数据相同。因此,写到memcached,然后将数据编码到InnoDB,仍然会触发最终的磁盘I/O。InnoDB提供快速读取的能力被memcached剥夺了。在相同的控制流中,只有在编写和记录小事务以提供崩溃恢复时才需要InnoDB。(HHHMMMM,这听起来像丈夫(他先做事情,必须承认和爱他的妻子)和妻子(保释丈夫,但保持他的尊严),不是吗??)

结论

如果正确地预测memcached将保存多少数据,则可以按memcached所需总内存的百分比(即,如果您计划对memcached使用8G内存,对InnoDB缓冲池使用6G或更低的内存)来缩放InnoDB。综合起来,它们的内存使用量必须小于已安装的总RAM。一旦达到这一平衡,InnoDB和memcached就会完全互补。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/260806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档