История изменений
Исправление no-such-file, (текущая версия) :
Покажи-ка метод, как это сделать, не пройдя по списку до этого элемента
Покажи-ка, какой должен быть OFFSET, чтобы идти 20 секунд? Не бывает такого размера индексов (у адекватных людей).
Не угадал. Зависит от размера таблицы и N (и PostgreSQL, в отличие от тебя, это «знает» и использует).
Игрушечные таблицы в принципе не интересны, именно потому, что там без разницы что и как — всё равно (автоматически) быстро.
С чего это он должен лежать в памяти?
С того, что иначе он нафиг не нужен. Если индекс такой огромный, то данных просто охренеть сколько. Это уже совсем другая история.
И с чего это таблица должна сортироваться на диске
С того что часто столько памяти нет, чтобы всю таблицу всосать. Если таблица не игрушечная и есть сортировка, то следует изначально предполагать, что она будет на диске/c диска. Да даже если вся таблица в памяти, но большая, то всё равно пройти по индексу один раз будет быстрее, чем 100500 раз пройти по таблице (для сортировки).
даже в треде уже были ссылки на объяснения, почему индексы неэффективны при больших OFFSET
Индексы эффективны (по сравнению с сортировкой таблицы) при любых OFFSET. Использование больших OFFSET+ORDER проблема именно потому, что эффективности этого нужен индекс, а индекс который подойдёт не всегда возможно/желательно иметь. Конкретно в случае ТС никакой проблемы нет (кроме той, что индекс у него не подхватывается).
Исходная версия no-such-file, :
Покажи-ка метод, как это сделать, не пройдя по списку до этого элемента
Покажи-ка, какой должен быть OFFSET, чтобы идти 20 секунд? Не бывает такого размера индексов (у адекватных людей).
Не угадал. Зависит от размера таблицы и N (и PostgreSQL, в отличие от тебя, это «знает» и использует).
Игрушечные таблицы в принципе не интересны, именно потому, что там без разницы что и как — всё равно (автоматически) быстро.
С чего это он должен лежать в памяти?
С того, что иначе он нафиг не нужен. Если индекс такой огромный, то данных просто охренеть сколько. Это уже совсем другая история.
И с чего это таблица должна сортироваться на диске
С того что часто столько памяти нет, чтобы всю таблицу всосать. Если таблица не игрушечная и есть сортировка, то следует изначально предполагать, что она будет на диске/c диска. Да даже если вся таблица в памяти, но большая, то всё равно пройти по индексу один раз будет быстрее в 100500, чем 100500 раз пройти по таблице (для сортировки).
даже в треде уже были ссылки на объяснения, почему индексы неэффективны при больших OFFSET
Индексы эффективны (по сравнению с сортировкой таблицы) при любых OFFSET. Использование больших OFFSET+ORDER проблема именно потому, что эффективности этого нужен индекс, а индекс который подойдёт не всегда возможно/желательно иметь. Конкретно в случае ТС никакой проблемы нет (кроме той, что индекс у него не подхватывается).