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 ответов

9 просмотров

сделайте 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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Карта сайта