1

私は、さまざまなビューで多くの同様のクエリを作成する Django アプリを開発しています。データベースの代わりに Redis をクエリすることで、Redis を使用して高速化することを計画しています。

私は質問を読んでいました: Djangoでredisを使用するにはどうすればよいですか? 開始するには、投票された最高の回答の最後に、「速度が必要になるまでRedisやその他のキャッシュの使用を開始しないでください。時期尚早に最適化しないでください。」というアドバイスが表示されます。 「時期尚早に最適化しないでください」とはどういう意味ですか? 時期尚早の最適化は、アプリや開発プロセスに悪影響を及ぼしますか? もしそうなら、私は何を探すべきですか?Redis やその他のキャッシュを使用するのに適した時期を判断するために、どのメトリックを使用できますか?

4

2 に答える 2

2

「時期尚早に最適化しないでください」とはどういう意味ですか?

あなたが持っていない解決問題を時期尚早に最適化することによって。

Redis やその他のキャッシュを使用するのに適した時期を判断するために、どのメトリックを使用できますか?

読み込み時間が原因で UX が影響を受ける場合。または、何らかの形で UX に影響がある場合は、おそらく検討を開始する時期です。

テクノロジーを追加すると、必要がない場合でも、ビルド/デプロイ プロセスがより複雑になる可能性があります。人々 (私自身を含む) は、アプリが何百万人の訪問者をサポートするか、毎日何百万ものエントリをデータベースに書き込むか、すべてのデータを効率的に管理し、将来のすべてのゴースト ユーザーのためにクエリを高速に保つ方法について常に考えています。アプリがどのようにスケーリングおよび成長するかを考えるのは素晴らしいことですが、必要になる前にスケーリングする理由はまったくありません。よく考え抜かれた db スキーマを備えた django とトラッド RDBMS を使用し、適切なインデックスを作成することで、おそらくアプリをそれよりも大きくすることができます。

于 2012-09-05T19:08:07.653 に答える
1

時期尚早の最適化は開発プロセスのためのものです。開発プロセスの早い段階で最適化を開始することは悪い習慣と見なされます。

Donald Knuth は、最適化について次の 2 つの声明を出しました。

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

ソースプログラムの最適化「最適化のタイミング」セクションを参照

于 2012-09-05T19:03:21.197 に答える