ある程度サイトが見れる程度にまで回復したっぽいのでこれでようやく対策を考えられます。 くるみです。
まず最初に、本件の問題点などを整理し解決策を考えています。 具体的な方針は以下のとおりです。
- DBの量が多すぎるので、少なくする(ただしDBは複数使えるため、複数に分割して1個あたりの負荷を減らす対応をする予定)
- サーチ機能が必ずインデックスを使用するようにする。インデックスを使用できないのであれば廃止する
- ファイルソートを行う処理を停止する。 例外として、タグ検索は対策して出来る限り残す
まず絶対に取ると決めている対策は以下のとおりです。
- リストデータとそれ以外のデータを分ける。 具体的には、マスターデータとユーザーデータ、タグデータ、シートデータの3種類のDBに分ける
- サーバースペックの限界を、リストデータ以外から切り離すために必要です
- 複数パターン検索をできないようにする
- レベル検索&経験値検索&名前検索&タイトル検索はその併用をできなくします。 インデックスを参照するのに必要です。
- これらの検索はソートオーダーを「使用した検索方法」によってソートされるように変更し、ソート方法を変更できなくします。
- 「ゲーム指定なし」 での名前とタイトル以外の検索を廃止
- インデックスも作っていないですし、検索結果に意味がないので消します。
今のところ考えている対策は以下のとおりです。
- CoCとSW2という特別ユーザーの多いシステムの古いシートを隔離する(特にCoC。SW2は特に対策しなくてもいい可能性あり)
- 上記は、タイトルやPC名検索が遅い問題の解決策です。 左記2検索は何か対策を取らなければ復帰できないと判断しています
- タグ検索のキャッシュ化
- タグ検索の高速化ルーチンです。 タグ検索は仕組み上Using FileSortが必須なのでキャッシュ化して負荷を軽減します
- 検索用のデータと保存時に参照するデータを分離
- これまでの「隠す」は保存用のデータしか持たないことで表現します。 つまり、リストに乗らずマイリストからも消滅します。
もうちょっとアイデアをいろいろ出して、検討していく予定です。
なお、これらの対策のために停止メンテが必須となります。 GW開けくらいにできたらいいなと思っています。
3 comments for “復旧処理:アイデア出し”