MySQL/PHPのパフォーマンスに関連する質問があります。
各レコードに関連付けられたインデックスリストをテーブルに保存する必要があります。各リストには1000個のインデックスが含まれています。特定のレコードに関連付けられているリスト内の任意のインデックス値にすばやくアクセスできる必要があります。最善の方法がわかりません。私は次の方法を考えました、そしてそれらについてのあなたの意見をお願いします:
リストをコンマ区切りの値リストとして、またはJSONを使用して文字列に格納します。単一の値を取得するためだけにDBからPHPにリスト全体を抽出する必要があるため、おそらくひどいパフォーマンスです。文字列の解析も正確に高速ではありません...負荷を減らすために、PHP側の最も使用頻度の低いキャッシュに多数の拡張リストを保存できます。
リストとその主キーを格納する1001列のリストテーブルを作成します。これがストレージに関してどれほどの費用がかかるかわかりませんか?これもシステムを悪用しているように感じます。そして、100000個のインデックスを保存する必要がある場合はどうなりますか?
インデックスを含むバイナリファイルの名前のみをSQLで保存し、fopen()を実行します。fseek(); fread(); アクセスごとにfclose()サイクル?システムファイルシステムキャッシュがそれにどのように反応するかわからない。それがうまくいかない場合は、問題に対処するために利用できる多くの解決策があります...しかし、それは少しやり過ぎに聞こえますか?
それについてどう思いますか?