2012-09-05 23 views
1

我正在开发一个Django应用程序,它在不同的视图中进行了很多类似的查询,并且我计划使用Redis来通过查询Redis而不是数据库来加速查询。为什么我不应该过早地在我的Django应用程序中使用Redis进行优化?

我正在阅读的问题:How can I use redis with Django?开始,并在最佳投票答案结束时,我看到的建议是:“不要开始使用Redis或任何其他缓存,直到你需要速度 - 不要过早优化“,我想也许我做错了,他的意思是”不要过早优化“?是否过早地优化去伤害我的应用程序或开发过程?如果有,我应该寻找什么?我可以使用什么指标来决定什么时候使用Redis或任何其他缓存?

+1

您是否明白,根据定义,“过早优化”意味着您在开始之前花费了优化代码?因此,_by definition_你不应该过早优化。不需要“为什么”。 –

+0

@cch - 这个问题更适合Programmers.StackExchange.com –

回答

2

是什么,他的“不要过早的意思优化“?

通过过早优化您没有的解决问题。

我可以使用什么指标来决定什么时候使用Redis或 任何其他缓存?

当UX因加载时间而受到影响时。或者当用户体验受到任何影响时,可能是开始寻找的时候了。

添加更多技术可能会使您的构建/部署过程在不需要时变得更加复杂。人们(包括我自己)总是会考虑我们的应用将支持多少百万的访问者,以及我们将如何每天向数据库写入数百万条记录,如何有效管理所有数据并为所有未来的幽灵用户快速保持查询。虽然考虑应用程序如何扩展和增长是非常好的,但在必要之前确实没有理由对其进行扩展。使用django和带有深思熟虑的数据库模式的传统RDBMS,并且正确的索引可能会支持您的应用程序比它更大。

1

不成熟的优化是针对开发过程的,在开发过程中尽早开始优化被认为是不好的做法;

高德纳提出了以下两个语句的优化:

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil" 

来源Program Optimization请参见“何时优化”部分

相关问题