なぜDrupalは、キャッシュされたデータをデータベースに入れるのですか?)データベースはパフォーマンスのボトルネックを簡単に引き起こす可能性があるため、それを理解するのは難しいです。
Drupalコアには、低レベルの使用を処理する優れたキャッシングシステムが付属しています。データベースをキャッシュとして使用すると、毎日数百/数千の訪問者がいるサイトを簡単に作成できます。これは設定が簡単なため、適切なデフォルトですが、高性能のためのより高度なキャッシュ戦略がサポートされています。
したがって、Drupalには実際にキャッシュの可能性がたくさんありますが、より高度なパフォーマンスを使用してパフォーマンスを向上させるには、追加の作業を行う必要があります。これには、とにかくさまざまなサーバーのセットアップが必要になります。しかし、本当に使いやすいデフォルトが推奨されます。
ここで尋ねた質問は、データベースキャッシュを他のもので置き換えることができるかどうかではありませんが、なぜDrupalはデータベースにデータベース情報をキャッシュします。ここで言及されていない理由は、データベース情報が再び同じデータベースにキャッシュされますが、同じ形式ではキャッシュされません。ノード情報やテーマ情報などの元のデータは、一種の正規化された形式で保存されるため、データの編集やクエリが簡単になります。キャッシュされた値ページの表示に必要な処理量を削減する方法で保存されます。
ページビューが次の簡略化された手順で構成されているとします。
Drupalは、ステップ2の結果をデータベースに保存するため、後続のページビューでステップ1と2を実行する必要はありません。これにより、時間と処理能力が節約されます。元のデータが変更されたとき、キャッシュをクリアする必要があります。
キャッシュされたデータをデータベースからフェッチすることは、単純なSQLリクエストであるため、簡単かつ高速です。また、ほとんどの結果は、SQLキャッシングシステムによってメモリにキャッシュされます。
他のキャッシングシステムもありますが、デフォルトのキャッシングシステムのデータベースほど優れていません。
実際、drupalキャッシュシステムはdrupal6とdrupal7にプラグイン可能です。つまり、あらゆる種類のキャッシングシステムを背後に置くことができます。
デフォルトではdrupalはデータベースベースのキャッシュシステムを使用しますが、たとえばmemcacheモジュールをmemcacheに置き換えることができます。
必要な場合は、ファイルベースのファイルを作成することもできますが、これはおそらく遅くなるはずです。
理由の非常に単純な説明は、パフォーマンスを向上させるキャッシュインターフェイスを提供することです。これにより、デフォルトでは、レイヤーがDrupalサイトに追加されません。
他のキャッシングメカニズムの方が優れていたり、より高速であったりしますが、多くのDrupalサイトでは必要ない追加の要件が導入されます。
幸いなことにDrupalは、必要な人のためにキャッシングシステムを交換できるように作られています。