0

何百万行ものテーブルが 5 つあります。質問は、メニューを作成し、将来的にはさらに拡張する必要があるということです。このテーブルへの選択クエリは、私の Web サイトの心臓部です。私のサイトにアクセスする人は誰でも、サーバーへの数十の選択クエリに相当します。この場合に実装できる最適なアーキテクチャ設計は何でしょうか?

  1. インデックス作成とキャッシュの使用。
  2. 毎回データベースにクエリを実行する必要なく、すべてのユーザーが使用できる XML または JSON を生成します。[XML または JSON は cron ジョブを介して生成できます。私の行は 5 分ごとに変更されません]。

または、これに対する他の良い解決策はありますか?上で述べた私のやり方を批判することでさえ、有効な答えです。

PS: 解決策がより優れたソフトウェア アーキテクチャにあるのであれば、サーバー パワーに投資しなくてよかったと思います。

4

2 に答える 2

0

APC ユーザー キャッシュを使用して頻繁に使用されるデータを保存することをお勧めしますが、クエリがユーザーごとにカスタマイズされている場合、それは適切ではない可能性があります。

于 2012-05-24T07:50:48.513 に答える
0

最初に行う必要があるのは、テーブルを正しくインデックス付けし、型のフィールドを使用しintてテーブルを結合し、query_cache_sizeを 512 MB に設定し (おそらくそれ以上ですが、これで十分です)、APC ユーザー キャッシュを使用します。for代わりにループでかなり大きなデータを処理する場合

for ($i = 0; $i < count($arr); $i++)

次のようにします。

$count = count($arr);

for ($i = 0; $i < $count; $i++)

これは完全なガイドではありませんが、基本です。

于 2012-05-24T07:57:20.337 に答える