【问题标题】:Query Cache vs. MEMORY -stored table查询缓存与 MEMORY 存储表
【发布时间】:2012-08-03 05:30:01
【问题描述】:

我计划通过数据缓存优化我的 Web 应用程序的性能。它使用 MySQL,所以到目前为止我发现的选项是这些 2:

  • 使用 MySQL 查询缓存功能
  • 使用内存存储引擎创建一个表,并将查询的完整结果作为序列化数组保存在其中;

我更喜欢第二个,因为我只需要缓存一个表,并且表修改的查询缓存会立即使从该表派生的所有查询无效。 在我的内存表中,我只能删除已修改(更新)的行。当然这需要更多的代码,但我想整体性能会更好。

你有什么推荐的,为什么?

【问题讨论】:

  • 检查memcache,如果更新太多,mysql查询缓存将无用。 mysql 内存表在管理上会很麻烦,很难同步,如果你想在内存表中使用 mysql-cluster ndb 进行磁盘同步,但多机(或同一台机器上的进程)对大多数人来说很麻烦
  • 是的,我也会检查 memcache,但是将来如果我要将我的应用程序分发给更多的客户,我要求他们在他们的服务器上安装 memcache 对我来说并不好因为我的应用没有它就无法运行……对吧?
  • 哦,我忘了,你可以直接使用mysql的触发器来更新内存表:),或者APC而不是memcache,通常它与php捆绑在一起

标签: mysql caching query-cache


【解决方案1】:

使用内存存储引擎创建一个表,并将查询的完整结果作为序列化数组保存在其中;

  • 1) 你的意思是会话# 使用 Redis 是一个开源(BSD 许可)的内存数据结构存储,用作数据库、缓存和消息代理
  • 2) 你的意思是查询缓存#

see this

希望它可以帮助您制作快速的网络应用程序

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 是的,兄弟,但如果看到它有很多细节,那就是大事了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 2013-06-28
  • 1970-01-01
相关资源
最近更新 更多