У меня есть таблицы с несколькими миллионами строк и нужно получить последние строки конкретных идентификаторовКак я могу принести последние N строк, не заказывая таблицу
, например, последнюю строку, которая device_id = 123 и последний строка, которая имеет device_id = 1234
, потому что таблицы настолько огромны, и упорядочение занимает так много времени, возможно ли выбрать последний 200 без заказа таблицы, а затем просто заказать эти 200 и получить нужные мне строки.
Как бы я это сделал?
Заранее благодарю вас за помощь!
UPDATE
Мой PostgreSQL версии 9.2.1
выборка данных:
time device_id data data ....
"2013-03-23 03:58:00-04" | "001EC60018E36" | 66819.59 | 4.203
"2013-03-23 03:59:00-04" | "001EC60018E37" | 64277.22 | 4.234
"2013-03-23 03:59:00-04" | "001EC60018E23" | 46841.75 | 2.141
"2013-03-23 04:00:00-04" | "001EC60018E21" | 69697.38 | 4.906
"2013-03-23 04:00:00-04" | "001EC600192524"| 69452.69 | 2.844
"2013-03-23 04:01:00-04" | "001EC60018E21" | 69697.47 | 5.156
....
Так что если device_id = 001EC60018E21 Я хотел бы самым последним строка с этим device_id. Это грантополучатель, что последняя строка с этим device_id - это строка, которую я хочу, но она может быть или не быть последней строкой таблицы.
последние 200 строк гарантированно иметь последние строки, где идентификатор = 123 и идентификатор = 1234 –
Если вы знаете идентификаторы, почему бы вы потрудились выборки всю таблицу? Стратегически расположенный индекс RDBMS решит проблему просто отлично. – dasblinkenlight
Всегда лучше показывать версию PostgreSQL, образцы данных и ожидаемые результаты, поэтому нам не нужно создавать тестовые примеры для вас. –