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

Как лучше организовать хранение инфы? Есть timestamp, device_id, room_id, metrics В каждом

room_id может быть много device_id

Либо хранить словарь device_id - room_id
Либо хранить это все в одной таблице ?

device_id = 1 млн
room_id = 1 тыс

Запросы к бд это чаще всего получить либо метрики по одному device_id либо посомтреть на метрики всех из room_id

И второй вопрос: на сколько хорошо будет сжиматься колонка с room_id если они идут в разнобой ?

11 ответов

13 просмотров

сделайте order by room_id, device_id, timestamp ( + опционально partition by какая-нибудь date_function(timestamp)) room_id будут лежать рядом и сожмутся хорошо а если device_id всегда в одной комнате, то вообще будет идеально

время в запросе учавствует? сдается мне время главнее чем room_id , device_id

ORDER BY (room_id, device_id, timestamp)

ivan
сделайте order by room_id, device_id, timestamp ( ...

я бы время раньше поставил потом room_id потом device_id и PARTITITION BY toYYYYMM(timestamp) сделал

Slach [altinity]
я бы время раньше поставил потом room_id потом dev...

зачем? это же убьет фильтрацию по всем полям, кроме timestamp потому что room_id и device_id станут рандомно разложены по колонкам, и where room_id будет сканить всю таблицу

ivan
зачем? это же убьет фильтрацию по всем полям, кром...

будет сканить кусок таблицы за заданный timestamp интервал мне бы все таки хотелось услышать от автора , есть у него там время или нет в запросах и есть ли запросы когда по диапозону времени для всех комнат и девайсов аггрегация идет

Ivan-Kizimenko Автор вопроса
Slach [altinity]
время в запросе учавствует? сдается мне время глав...

да время участвует, это по сути мониторинг устройств

Ivan Kizimenko
да время участвует, это по сути мониторинг устройс...

ну тогда IMHO сначала читаем по времени... потом уже фильтруем по room_id и device_id так что если время есть всегда, я бы его вперед выставил, но тут вот люди другое советуют

Ivan Kizimenko
да время участвует, это по сути мониторинг устройс...

или попробуйте построить две тестовые таблицы и заюзайте ваши запросы на небольшом наборе данных. через explain и query_log посмотрите, какая версия меньше сканит на ваших данных.

если предполагается хранить триллиопы стиок то делают отдельную таблицу metric, device, room

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно 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
Карта сайта