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

Поиск
Список
Период
Сортировка
От Evgeny M. Baldin
Тема Поиск ближайшего
Дата
Msg-id Pine.LNX.4.58.0504061538050.24941@star.inp.nsk.su
обсуждение исходный текст
Ответы Re: Поиск ближ  (Teodor Sigaev <teodor@sigaev.ru>)
Re: Поиск ближайшего  (Oleg Bartunov <oleg@sai.msu.su>)
Список pgsql-ru-general
Добрый день

 Так уж случилось, что на эксперименте для целей медленного контроля и
калибровок стали использовать PostgreSQL. К сожалению средство оказалось
не совсем адекватным для нужным нам целей.

 Преамбула: ключом является время BeginTime. Запросу тоже передаётся
время Time. По запросу необходимо выдернуть ближайшую по времени запись,
где BeginTime<=Time (назовём эту запись валидной для Time)

 Амбула: Запрос представляет из себя фразу типа:

select * from таблица where BeginTime<=Time
                       order by BeginTime desc limit 1;

Индексы работают, одиночные запросы проходят более-менее быстро, хотя тоже
хотелось бы побыстрее.

А вот попытка сопоставить валидные записи для массива времён, особенно
когда число записей в таблице превышает десятки тысяч наступает полный :(

Что хотелось бы: когда идёт поиск для какого-то числа на предмет
равенства, то используется бинарный поиск - это быстро. Хотелось бы иметь
поиск подобного рода, но не на предмет поиска точного значения, а на
предмет поиска ближайшего. Как я понимаю по числу действий это тоже самое,
просто надо помнить предыдущее число.

То есть нужен оператор типа равенства - назовём его CLOSE TO для работы с
временными данными, стой же самой скоростью работы для быстрого
сопоставления.

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

P.S.  Я не программист - я пользователь, поэтому хотелось бы получить
результат малой кровью.

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Genix
Дата:
Сообщение: Re: соединение
Следующее
От: Teodor Sigaev
Дата:
Сообщение: Re: Поиск ближ