私はphpActiveRecord
、mySQL を使用してセンサー ネットワークからデータを取得し、それをクライアント上の多数の flot.js グラフにプロットするアプリを使用しています。
グラフが表示するデータの範囲に影響を与えるために、ユーザーが選択できる時間枠がいくつかあります。2hrs, 24hrs, 3 days and 1 week.
センサーは 60 秒ごとにデータベースに投稿するため、グラフをプロットすると、クエリはnow and DATE_SUB(CUR_DATE - INTERVAL ? DAY)
where ?の間のすべての行を取り込みます。1、3、7 などのいずれかです。
ただし、これにより膨大な数の行が返され(60,000 + for the full week!)
、膨大な遅延とサーバー エラーが発生します。
ファイル内のクエリに使用できる最大メモリを大幅に増やすことができることはわかっていphp.ini
ますが、これは良い解決策とは言えず、速度の問題も解決しません。
私の質問は、ユーザーが表示したい間隔の長さに応じて、必要な日付範囲から 2 行ごとまたは 3 行ごとに簡単に選択できる方法はありますか?
CまたはJavaでは、モジュロ選択のようなことを行って代替行を返しますが、現在のフレームワークでこれを行う方法は考えられません.
どんなアイデアでも大歓迎です。ありがとう。