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' и на этк тему написаноо куча работ. Мы с Федей Сигаевым
> года три назад даже патч сделали, но тогда его не приняли из-за его
> плохой реализации.
Хорошо - посмотрю :( Как-то не очень оптимистично.
С уважением
Евгений
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: Поиск ближайшего |