mysql に大量のデータ (>10000 など) を含むテーブルがあり、すべてのデータを Java にロードしてグラフィックをプロットするのはかなり遅いようです。グラフィックをプロットするためにいくつかのポイントを取得したいのですが、方法がわかりません。同様に、10 行または 100 行ごとにデータを取得します。何か案が?
2 に答える
2
自動インクリメント フィールドがある場合は、剰余 (mod) を使用して 10 行または 100 行ごとに単純に選択できます。
SELECT actor_id, last_name FROM actor WHERE MOD(actor_id, 10) = 0;
各行に行番号を付けて、結果を制限することもできます。
SELECT actor_id, last_name, row_number FROM
(SELECT actor_id, last_name, @currentRow := @currentRow + 1 AS row_number FROM
actor JOIN (SELECT @currentRow := 0) Row) Data
WHERE MOD(row_number, 10) = 0;
クールな行番号テクニックは、Daniel Vassallo によるものです。MySQL で、テーブル内のレコード インデックスを含む列を生成するにはどうすればよいですか?
幸運を :)
于 2012-09-03T14:05:56.500 に答える
1
または、全体の間隔 min(x) - max(x) を N 間隔に分割し、間隔ごとに 1 つの平均ポイントのみを取得できます。たとえば(ここでは 10 間隔)、次のようになります。
select round((x-@minx)/@step),avg(y) from PLOT_DATA,
(select @minx:=min(x),
@maxx:=max(x),
@intervals:=10, /*separated intervals count*/
@step:=(@maxx-@minx)/@intervals
from PLOT_DATA) t
group by round((x-@minx)/@step)
order by round((x-@minx)/@step)
于 2012-09-03T14:49:01.990 に答える