我计划通过数据缓存来优化我的Web应用程序的性能。它使用MySQL,所以我迄今发现的选项是这2:查询缓存与存储器存储表
- 使用MySQL查询缓存功能
- 做一个表使用内存存储引擎,并保持它作为查询序列化阵列的全部结果;
我宁愿第二个,因为只有我需要缓存的表,并且表修改上的查询缓存会使从该表派生的所有查询无效。 虽然在我的内存表中,我只能删除已修改(UPDATED)的行。当然,这需要更多的代码,但我认为整体性能会更好。
你有什么建议,为什么?
我计划通过数据缓存来优化我的Web应用程序的性能。它使用MySQL,所以我迄今发现的选项是这2:查询缓存与存储器存储表
我宁愿第二个,因为只有我需要缓存的表,并且表修改上的查询缓存会使从该表派生的所有查询无效。 虽然在我的内存表中,我只能删除已修改(UPDATED)的行。当然,这需要更多的代码,但我认为整体性能会更好。
你有什么建议,为什么?
检查内存缓存,MySQL查询缓存将是无用的,如果你有太多更新。 mysql内存表将会在地狱中管理,它很难被同步,如果你想在内存表中使用磁盘同步,但多台机器(或同一进程中的进程)对于大多数人来说都是一个麻烦 – Hawili 2012-08-06 12:07:15
是的,我可以使用mysql-cluster ndb我也会检查memcache,但将来如果我要将我的应用程序分发给更多的客户端,那么要求他们在他们的服务器上安装memcache并不会很好,因为我的应用程序如果没有它,就不能工作。 。 对? – adrian7 2012-08-06 17:12:18
哦,我忘记了,你可以直接使用触发器从mysql更新内存表:),或者APC而不是memcache,通常它捆绑了php – Hawili 2012-08-06 20:33:56