【发布时间】: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