mysql - 什么更快 : Memcached or MySQL in memory table like HEAP?

标签 mysql memcached

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

还有其他更快的选择吗?

最佳答案

对于简单的使用,memcached 会更快,毫无疑问——在 memcached 上连接设置要便宜得多,因为没有身份验证、缓冲区分配等。此外,memcached 旨在轻松地在多个服务器之间分发 key 。

然而,memcached 只是一个简单的键/值存储。如果您需要对数据做任何更复杂的事情(甚至像 SELECT * WHERE x > 5 这样的事情),HEAP 表会更强大。

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

  1. 全局变量(本地请求/进程)
  2. APC(服务器本地)
  3. 内存缓存(全局)

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

关于mysql - 什么更快 : Memcached or MySQL in memory table like HEAP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972950/

相关文章:

php - 在laravel中使用 "store function"中的外键将数据存储到多个表

mysql - Django - 对 manage.py 与服务应用程序使用不同的 MySQL 用户?

php - 如何从mysql查询中只获取一行

django - 如何使用查询参数让服务器删除 API 调用缓存(django、DRF)

ruby-on-rails - Rails 3 和 Memcached - 智能缓存,永不过期

sql - mysql分组问题

python - 是否有与 Python 的集合类型等效的 MySQL?

python - 如何获取 memcached 中特定项目的过期时间

java - Spring许多mamcached实现

python - pylibmc : 'Assertion "ptr->query_id == query_id + 1"failed for function "memcached_get_by_key"'