是使用memcache(d)过早优化?

时间:2011-12-10 06:17:49

标签: php database caching optimization memcached

我正在开发一个甚至还没有在线的网络应用程序。从现在开始实施memcachememcached 有点为时过早?我应该只在以下情况下使用它吗?

  • 网络应用已启动,
  • 由于流量/负载较高,数据库的性能较差?

或者在开发过程中实施更好?

另外,在哪些情况下使用缓存接口是不必要的甚至是不鼓励的?

3 个答案:

答案 0 :(得分:4)

了解你的问题空间

请参阅memcached自己的wiki:

  

使用memcached可以让我的应用程序变慢吗?

     

是的,绝对的。如果您的数据库查询都很快,那么您的网站就是   快速,添加memcached可能不会让它更快。

让它先行动

在拥有稳定的工作产品之前进行的任何优化过早。您将花费所有时间摆弄对您的应用程序没有性能影响的旋钮。

最好的办法是让它进入工作状态然后做几件事:

个人资料表现

在收集效果数据之前,您根本不知道瓶颈究竟在哪里。很可能他们在你没有考虑的领域。

确定优化支付

评估每个问题区域以获得潜在的性能改进。优先考虑能够带来最佳投资回报率(投资回报率)的领域。在某些情况下,最佳投资回报率可能是更多硬件

实施优化

一旦确定了需要优化的内容,请制定计划并实施。

来源

答案 1 :(得分:0)

完全没有,memcache只是一个外部存储(快速且分布式),
不多也不少

  

另外,在哪些情况下使用缓存接口是不必要的甚至是不鼓励的?

可能不应该用于关键数据,例如交易

答案 2 :(得分:0)

实际上,这个问题有两个答案:

首先,正如Will Bickford所说,你必须避免过早优化。您必须有一个有效的应用程序来确定可能从性能改进中受益的位置。只有在那之后你才可以尝试应用缓存。

其次是为将来的负载设计应用程序。这意味着在开始编码之前,你应该尝试回答这个问题:“如果应用程序必须处理负载,我的设计会如何改变,比如说现在计划的数量是现在的10,000倍?”这通常会导致更高级(如通过)设计,适应多个服务器的扩展,并且需要在服务器之间共享状态,因此需要分布式缓存。如果你不回答这个问题,你很可能迟早要重写你的申请。

换句话说,为未来而设计,为今天实施。

希望这有帮助。

Slava Imeshev