У меня есть база данных PostgreSQL с 1,2 миллиарда строк, и я попытался создать приложение, которое запрашивает миллион строк за раз, с возможностью запрашивать большие интервалы. Сначала я просто запросил базу данных размером от миллиона до 10 миллионов;
Теперь, когда я запрашиваю большую базу данных с помощью OFFSET
, создание ResultSet
занимает много времени.
// ...
stmt.setFetchSize(100000);
ResultSet rs = stmt.executeQuery("SELECT mmsi, report_timestamp, position_geom, ST_X(position_geom) AS Long, "
+ "ST_Y(position_geom) AS Lat FROM reports4 WHERE position_geom IS NOT NULL ORDER by report_timestamp ASC LIMIT "
+ limit + " OFFSET " + set);
Таким образом, ORDER BY
, вероятно, убивает мое время выполнения, но упорядоченная информация упрощает дальнейшую работу. Есть ли более эффективный способ запрашивать строки с интервалами?
report_timestamp
, это было бы почти бесполезно. Я думаю, что есть также частичные индексы, которые могут точно соответствовать вашему предложениюwhere
. - person Marko Topolnik   schedule 20.07.2015