2012-08-06 51 views
0

我计划通过数据缓存来优化我的Web应用程序的性能。它使用MySQL,所以我迄今发现的选项是这2:查询缓存与存储器存储表

  • 使用MySQL查询缓存功能
  • 做一个表使用内存存储引擎,并保持它作为查询序列化阵列的全部结果;

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

你有什么建议,为什么?

+0

检查内存缓存,MySQL查询缓存将是无用的,如果你有太多更新。 mysql内存表将会在地狱中管理,它很难被同步,如果你想在内存表中使用磁盘同步,但多台机器(或同一进程中的进程)对于大多数人来说都是一个麻烦 – Hawili 2012-08-06 12:07:15

+0

是的,我可以使用mysql-cluster ndb我也会检查memcache,但将来如果我要将我的应用程序分发给更多的客户端,那么要求他们在他们的服务器上安装memcache并不会很好,因为我的应用程序如果没有它,就不能工作。 。 对? – adrian7 2012-08-06 17:12:18

+2

哦,我忘记了,你可以直接使用触发器从mysql更新内存表:),或者APC而不是memcache,通常它捆绑了php – Hawili 2012-08-06 20:33:56

回答

-1

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

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

see this

希望它的帮助你做出快速的Web应用程序

+0

尽管这个链接可能回答这个问题,但最好包含在这里回答并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/评论/低质量帖/ 15910058) – 2017-04-23 08:16:46

+0

是兄弟,但它是大事情,如果看到它有很多的细节 – stren 2017-04-23 13:12:00