5分ごとに完全にリフレッシュする必要がある約150万行のデータが格納されたテーブルを備えたMySQLデータベースがあります。 5分以上経過するとデータは不要になります。5分ごとに150万行のデータセットを置換する
テーブルにデータを取得することは問題ありません。約50〜70秒でデータを入力できます。私がいくつかの問題を抱えているのは、すべての古いデータをシフトして新しいデータに置き換える方法を考え出すことです。データセット全体でいつでもクエリを実行できるようにする必要があります。これらのクエリは非常に高速に実行する必要があり、一度に1つのデータセットのデータのみを含む必要があります(つまり、クエリがテーブルが更新されている1分間に新しいデータと古いデータの組み合わせを取得してはいけません)。
大規模な一時データセットの使用経験はあまりありません。この問題を解決するにはどうすればよいのかアドバイスをいただきたいと思います。
あなたは 'DELETE'ステートメントを使うことができますが、@RolandStarkeのアイデアは良いです。テーブルの名前を変更したり、新しいテーブルを作成したり、新しいデータを作成してから最初のテーブルを削除する方が速いでしょう。 – Fleury26
DELETEアプローチはトランザクション内にある必要があります。つまり、削除および再挿入中に1分以上テーブルがロックされます。 DELETEはオープン読み取り中もブロックされます。 RENAMEオプションは、そのDDLとしてトランザクション内にあることさえできません。 – MatBailie