Разработка масштабируемой схемы базы данных для фильтрации и агрегирования миллионов почасовых записей [закрыто]MySql

Форум по Mysql
Ответить
Anonymous
 Разработка масштабируемой схемы базы данных для фильтрации и агрегирования миллионов почасовых записей [закрыто]

Сообщение Anonymous »

Я разрабатываю схему реляционной базы данных, которая должна эффективно обрабатывать миллионы строк.
Каждая сущность создает ежечасные записи (24 записи в день).

Сущности организованы в трехуровневую иерархию, поэтому пользователи могут фильтровать данные на разных уровнях.
Основные требования:
  • Каждая сущность создает одну запись в час
  • Данные необходимо фильтровать по уровню иерархии
  • Запросы включают:

    Агрегацию за день, месяц или год
  • Обнаружение отсутствующих данных ежечасно записей
  • Быстрая фильтрация по родительским уровням
[*]Таблица вырастет до миллионов (или десятков миллионов) строк

Код: Выделить всё

categories
- id (PK)
- name

groups
- id (PK)
- category_id (FK)
- name

devices
- id (PK)
- group_id (FK)
- name

hourly_logs
- id (PK)
- device_id (FK)
- log_date (DATE)
- log_hour (TINYINT, 0–23)
- metric (DECIMAL)
- created_at (TIMESTAMP)

UNIQUE (device_id, log_date, log_hour)
INDEX (device_id, log_date)
Вопросы:
  • Подходит ли эта схема для обработки миллионов почасовых записей?
  • Можно ли здесь рекомендовать разделение таблиц (по дате или устройству)?
  • Существуют ли лучшие стратегии индексации для этого доступа шаблон?
  • Следует ли добавлять сводные таблицы за день/месяц для повышения производительности?
  • Есть ли какие-либо структурные изменения, которые улучшат масштабируемость?
Ядро базы данных: MySQL
В основном я ищу Рекомендации по проектированию и производительности схем для больших наборов данных, похожих на временные ряды, в реляционной базе данных.
введите здесь описание изображения

Подробнее здесь: https://stackoverflow.com/questions/798 ... lions-of-h
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»