Isint Memcached和Innodb的缓冲池做了同样的工作吗?

时间:2014-10-17 21:25:56

标签: mysql caching memcached buffer innodb

这就是我所理解的:

Innodb中的缓冲池:它存储来自Sql表的索引和数据并将其缓存以供将来查询,因此不需要一直打扰Mysql。

Memcached :这用于存储从Innodb收到的数据并对其进行缓存,因此无需每次都询问Innodb。

他们是不是都在做同样的事情我在Ram中缓存响应所以它更快并减少了I / O和sql解析?那么为什么要在Innodb缓冲池顶部添加另一层memcached?

1 个答案:

答案 0 :(得分:2)

缓冲池由InnoDB管理。执行查询所需的所有内容都必须位于缓冲池中,以便在从磁盘读取新数据以在当前查询中使用时,如果需要,可以逐出该数据。

表之间的连接仍然完成,即使表位于缓冲池中,也可能成本很高。

另一方面,

Memcached 是一个键值存储。不能对存储在那里的数据执行关系操作,只需插入和检索。它也是分布式的,可以构建庞大的集群。

通常,长时间运行或重度查询的结果会在memcached中存储一段时间,从而加载数据库。