170 похожих чатов

Всем привет, кто знает как оптимизировать запрос и вообще стоит

ли это делать?

в таблице есть данные которые сохраняются каждые 5 минут, мне нужно выбрать из этой таблицы данные с интервалом в 15 минут, написал вот такой запрос, он выполняет то что мне нужно, но может я сделал это не совсем правильно и есть более легкий способ?

6 ответов

11 просмотров

select from where datefield between date1 and date2

Спонталыку мне лучшего решения в голову не приходит. Считать арифметику с датами по-любому придется. Почему бы и не так? Если там прямо МНОГО данных, можно попробовать сделать вьюху или (если постгря) отнаследовать таблицу и шардить в нее только данные с этим же фильтром.

Сергей- Автор вопроса

не совсем понял что за вьюха и что значит отнаследовать? и да, данных много, уже больше 4-х миллионов

Сергей
не совсем понял что за вьюха и что значит отнаслед...

Почитай маны про create view - это "виртуальная" таблица, в которой данные уже отфильтрованы на стороне БД, еще на стадии дописывания новых записей в исходную таблицу. Но тут будет оверхед при записи. Зато запросы сразу станут простыми. Наследование таблиц в постгре позволяет создать новую таблицу, наследованную от исходной - тоже своего рода view, но механизм иной. Используется для шардинга данных.

D T
Почитай маны про create view - это "виртуальная" т...

Ну это не оптимизирует запрос и любые изменения потребуют миграцию. Такое себе решение.

Bat
Ну это не оптимизирует запрос и любые изменения по...

Да, тут палка о двух концах. Но я и сказал выше, что быстро придумать как можно иначе отфильтровать даты, мне в голову не приходит. Но если стоит задача ускорить обработку запроса, то вьюха могла бы стать решением, потому что оптимизирует сами данные еще ДО запроса.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта