2010-11-09 2 views
3

У меня есть db с + 60000 записей, мне нужно получить последние 10 записей, можно ли это сделать через postgres? Я думал, возможно, установив смещение на 50 990, а предел до 10 или что-то подобное, но не уверен, что это будет эффективно?Как я могу получить последние 10 записей

+0

Какие строки отсортированы? – MrEdmundo

+0

У вас есть метка времени или серийное поле? – Ben

+0

@MrEdmundo, по временной шкале unix – Roland

ответ

5

Нечто подобное возможно следующее:

SELECT * FROM your_table 
ORDER BY your_timestamp DESC 
LIMIT 10 

Если вы хотите результат, отсортированный по отметке времени, вы можете обернуть это в другом запросе и сортировки снова. Вы можете взглянуть на план выполнения, но это не должно быть слишком неэффективным.

2
ORDER BY id DESC LIMIT 10 

Если проиндексировано id, это будет очень эффективно. Естественно, также может быть временной меткой.

Смежные вопросы