什么更快:内存表中的Memcached或MySQL如HEAP?

Bre*_*ent 9 mysql memcached

如果我有一个非常静态的数据集,我希望能够尽快访问.我应该将数据缓存到Memcached中还是应该将其存储在HEAP表中或MySQL内部?一个比另一个更好吗?

还有其他选择更快吗?

Fra*_*mer 20

memcached对于简单的用途来说会更快,用手关闭 - 连接设置在memcached上要便宜得多,因为没有auth,缓冲区分配等.此外,memcached旨在轻松地在多个服务器之间分配密钥.

但是,memcached只是一个简单的键/值存储.如果您需要对数据执行更复杂的操作(甚至类似于SELECT*WHERE x> 5),则HEAP表会更强大.

Robert Munteanu提出了一个很好的观点.您的缓存层次结构应该是:

  1. 全球(请求/流程的本地)
  2. APC(服务器本地)
  3. memcache(全局)

如果您不需要将全局更改传播到此数据,则将其存储在APC中是有意义的.如果在脚本执行期间需要多次访问它,则还应将其缓存在脚本中的globals中.

  • 它应该是 - 它基本上只是一个共享内存段,因此任何数据访问基本上只需要将内存从一个地方复制到另一个地方.同时,memcache请求通过套接字发生,有查询解析和反序列化开销等.这是一个支持全局的基准 - > APC - > memcached缓存层次结构:http://www.mysqlperformanceblog.com/2006/08/09/cache-业绩比较/ (2认同)