ユーザーのために多数のテーブル行を処理する既存の PHP/MySql/JS/Ajax Web アプリを使用しています。現在のページの仕組みは次のとおりです。
- ユーザーが大きな csv ファイルをアップロードします。私が取り組んでいるテストには 400,000 行あります (各行には 5 列あります)。
- Php は、このデータ用にまったく新しいテーブルを作成し、数十万行を挿入します。
- 次に、ページはこのデータを便利な方法でユーザーに並べ替え/処理/表示します。処理には、検索、日付やその他の行による並べ替え、膨大な読み込み時間なしでの再表示が含まれます (JS/Ajax の出番です)。
私の質問は、このアプリがデータをアップロードごとに新しいテーブルに配置するか、ファイルごとに id を持つ 1 つの大きなテーブルに配置する必要があるかということです。元の開発者は、速度を上げるために別のテーブルを追加していたと思います。そのためにはスピードが非常に重要です。
もっと速い方法はありますか?より良いマウストラップはありますか? 誰かがこれに悩まされたことはありますか?
すべての .csv には何十万行も含めることができ、毎日何百もの .csv ファイルをアップロードできることに注意してください。それらは最後に使用されてから約 24 時間後に削除できますが (私は cron ジョブについて何か意見を考えていますか?)
皆さん、ありがとうございました!
コメントに基づくいくつかのメモ:
- すべてのデータは各ユーザーに固有であり、変更されるため、ユーザーは数時間後にこのデータに再度アクセスすることはありません. 誤ってウィンドウを閉じてすぐに戻ってきた場合にのみ、同じ .csv を実際に再訪問します。
- 外部キーは必要ありません。すべての csv は各ユーザーに非公開であり、相互参照する必要はありません。