Задать вопрос
x67
@x67

Как эффективнее реализовать sql запрос?

Есть СУБД postgresql, есть табличка с полями времени, имени пользователя, типа пользователя и гео.координат. Пользователей много, типов пользователей около 5-7. В таблицу каждые n минут пачкой записываются пользователи (и время на момент записи), которые находятся в определенных зонах, если они не находятся в этих зонах, то и не записываются. n для каждого типа может быть разным. На самом деле таблиц две, в одной строка на пользователя, а во второй тип, время и массив пользователей которые были отмечены в этот момент времени.
Хотелось бы получить быстрый запрос, который выдавал бы пользователя, тип события (появился, исчез) и время события.
на основе оконных функций lag, lead как-то не очень быстро получается и к тому же их не запихнуть в where. Может есть что-то еще?

П.с. Возможно такие задачи лучше решать потоково по мере появления новых записей и наверное даже не средствами sql, но сейчас другой возможности нет.
  • Вопрос задан
  • 752 просмотра
Подписаться 2 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@LAV45
Пиши данные в memcache и в БД, на случай если memcache слетит.
Все необходимые данные доставай из кеша.
По сути memcache будет щитом перед БД. Если по запросу ничего не найдено тогда придется сходить в базу за данными.
Memcach хоть и не БД но от него тоже можно добиться атомарности php.net/manual/ru/memcached.cas.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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