Re: Поиск ближайшего

From: "Evgeny M(dot) Baldin" <E(dot)M(dot)Baldin(at)inp(dot)nsk(dot)su>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Поиск ближайшего
Date: 2005-04-06 13:49:13
Message-ID: Pine.LNX.4.58.0504062045020.31034@star.inp.nsk.su
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Добрый день

On Wed, 6 Apr 2005, Oleg Bartunov wrote:

> кстати, а сколько всего записей без ' limit 1' ?
> Если там много, то чудес нет, сортировать десятки тысяч записей требуется
> время. Поэтому тебе надо использовать range, т.е. задать разумный
> нижний предел и не париться. Это дело приложения и серого вещества
> разработчиков приложения.

У нас данные эксперимента за несколько лет (пока три года - будет больше)
и их все может потребоваться обработать с учёт данных калибровок и
медленного контроля. А число записей очень по разному - от штук, до
десятков тысяч. Модифицировать поведение для каждой таблицы не получится
- слишком их много, меня одного мало :).

> Другое дело, и мы пару раз этот вопрос поднимали, что limit на самом деле
> является синтаксической затычкой, т.е. все вытаскивается, сортируется
> согласно order by, а потом тупо и грязно вытаскиваются необходимые данные.
> На самом деле, все можно делать по уму, т.е. использовать partial sort,
> например, в твоей задаче надо вытащить только 1 строчку, а про все остальные
> тебе совсем не важно, поэтому и сортировку можно остановить.
> Есть и еще алгоритмы. А ключевым словом, к твоей задаче является
> 'top-k query' и на этк тему написаноо куча работ. Мы с Федей Сигаевым
> года три назад даже патч сделали, но тогда его не приняли из-за его
> плохой реализации.

Хорошо - посмотрю :( Как-то не очень оптимистично.

С уважением
Евгений

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Oleg Bartunov 2005-04-12 12:51:55 Obnovlenie stat'i
Previous Message Evgeny M. Baldin 2005-04-06 13:44:31 Re: Поиск ближайшего