LINUX.ORG.RU

postgresql: взять последнюю запись

 ,


0

1

Есть таблица,

где id - автоматически инкрементится
index - номер
desc - описание

id | index | desc
________________________
1 | 5 | first for 5
________________________
2 | 4 | fisrt for 4
________________________
3 | 4 | second for 4
________________________
4 | 5 | second for 5
________________________
5 | 1 | fisrt for 1
________________________
6 | 3 | fisrt for 3
________________________
7 | 3 | second for 3

Подскажите пожалуйста, как выбрать строку для последней записи для index
т.е. например, чтобы получить
________________________
4 | 5 | second for 5
________________________


Ответ на: комментарий от anonymous

А Postgres это оптимизирует до O(n) или будет сортировать за O(n log n)?

Оптимизирует. А если индекс отстроить то будет O(1).

maxcom ★★★★★
()
Ответ на: комментарий от AlexKiriukha

Хм, думал по индексу O(log).

Это поиск по индексу так работает, и компонента «log» там не существенная так как у btree очень много ребер у каждого узла. Элементы в btree упорядочены и связаны между собой, на максимальный и минимальные элементы есть явные ссылки. По этому поиск максимального элемента узла делается за фиксированное время и не зависит от числа элементов в таблице.

maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от maxcom

Спасибо за разъяснение. Не знал, что максимальные и минимальные элементы хранятся.

AlexKiriukha ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.