如果我有一个非常静态的数据集,我希望能够尽快访问.我应该将数据缓存到Memcached中还是应该将其存储在HEAP表中或MySQL内部?一个比另一个更好吗?
还有其他选择更快吗?
memcached对于简单的用途来说会更快,用手关闭 - 连接设置在memcached上要便宜得多,因为没有auth,缓冲区分配等.此外,memcached旨在轻松地在多个服务器之间分配密钥.
但是,memcached只是一个简单的键/值存储.如果您需要对数据执行更复杂的操作(甚至类似于SELECT*WHERE x> 5),则HEAP表会更强大.
Robert Munteanu提出了一个很好的观点.您的缓存层次结构应该是:
全球(请求/流程的本地)
APC(服务器本地)
memcache(全局)
如果您不需要将全局更改传播到此数据,则将其存储在APC中是有意义的.如果在脚本执行期间需要多次访问它,则还应将其缓存在脚本中的globals中.