如果我有一组非常静态的数据,我希望能够尽快访问这些数据。我应该将数据缓存到 Memcached 中还是应该将其存储在 HEAP 表或 MySQL 中的其他内容中?一个秤会比另一个更好吗?
还有其他更快的选择吗?
最佳答案
对于简单的使用,memcached 会更快,毫无疑问——在 memcached 上连接设置要便宜得多,因为没有身份验证、缓冲区分配等。此外,memcached 旨在轻松地在多个服务器之间分发 key 。
然而,memcached 只是一个简单的键/值存储。如果您需要对数据做任何更复杂的事情(甚至像 SELECT * WHERE x > 5 这样的事情),HEAP 表会更强大。
Robert Munteanu 提出了一个很好的观点。您的缓存层次结构应该是:
- 全局变量(本地请求/进程)
- APC(服务器本地)
- 内存缓存(全局)
如果您不需要将全局更改传播到此数据,那么将其存储在 APC 中是有意义的。如果您需要在脚本执行期间多次访问它,您还应该将它缓存在脚本的全局变量中。
关于mysql - 什么更快 : Memcached or MySQL in memory table like HEAP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972950/