2012-09-05 20 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請參見「何時優化」部分

相關問題