私は多かれ少なかれ良い結果のクエリを持っていますが、処理に約45秒かかります。それは間違いなくGUIにデータを表示するには長すぎます。
私のデータテーブルは、〜2,619,395エントリのものがあり、依然として成長しています。mysqlクエリ - 巨大なテーブルのための既存のMAX-MINクエリを最適化する
スキーマ:exportValueは常にexportValueは〜私の場合には10台のステーション
num | station | fetchDate | exportValue | error
1 | PS1 | 2010-10-01 07:05:17 | 300 | 0
2 | PS2 | 2010-10-01 07:05:19 | 297 | 0
923 | PS1 | 2011-11-13 14:45:47 | 82771 | 0
説明
- 15分10の新しいエントリがテーブルに書き込まれます 012いくつかを書い
- :
select YEAR(fetchDate), station, Max(exportValue)-MIN(exportValue) from registros where exportValue > 0 and error = 0 group by station, YEAR(fetchDate) order by YEAR(fetchDate), station
出力::その上
Year | station | Max-Min 2008 | PS1 | 24012 2008 | PS2 | 23709 2009 | PS1 | 28102 2009 | PS2 | 25098
私の考え
- エラーは、適切な作業ステーション
作業するクエリのためだけの指標であります文の間に ' 2008年1月1日から2008年1月2日までの間にMIN(exportValue)を取り込み、2008年12月30日から2008年12月31日までMAX(exportValue)を取得する - 問題:多くのクエリと
追加情報:
私は、Javaアプリケーションでクエリを使用しています。つまり、必要に応じて結果セットで後処理を行うことができます。 (JPA 2.0)
ヘルプ/アプローチ/アイデアは大変ありがとうございます。前もって感謝します。
インデックスを作成していただきありがとうございます。私はそれについていくつかの情報を見つけるためにgoogleを使いました - > http://www.sitepoint.com/optimizing-mysql-application(誰かが興味を持っているなら)。私の質問は5秒後に処理されるようになりました。残念なことに、phpMyAdminのSQLコンソールを使用し、JPA 2.0を使用してJavaからクエリを処理していない場合のみ:/(しかし、それを見ていきます) – RonH