多数の複雑なクエリがあり、その結果は MySQL ビューに保存されていました。問題は、MySQL ビューのパフォーマンスが低下することです。
ビューに入力されたのと同じデータを標準テーブルに入力する cron ジョブを設定しました。
DROP TABLE user_reports;
CREATE TABLE user_reports
SELECT col1, col2, col3 FROM
/** COMPLEX QUERY **/
;
現在、cron が設定されたuser_reports
テーブルに対してクエリを実行すると、同等のビューと比較して、クエリにかかる時間はほぼ 10 分の 1 になります。
これは一般的なアプローチですか?明らかに、CRON ジョブが実行されるたびにサーバーに何らかの負荷がかかり、データがライブで利用できないことを意味します。
クエリにかかる 時間
user_reports
= 0.002 秒クエリにかかる時間= 0.018 秒view_user_reports
つまり、実行に 0.018 秒かかるクエリは、ビューに格納するのではなく、アプリケーション コードから実行する必要があるのではないでしょうか? 私はそれがcron駆動の方法と同じようにスケーリングするとは思わないが.