Дизайн базы данных - PullRequest
       12

Дизайн базы данных

0 голосов
/ 10 марта 2010

Я пытаюсь создать проект базы данных mysql для проекта. Проблема подходит к лучшему решению. В основном в моем приложении мне нужно будет вставить примерно 10-30 строк на пользователя. Первичным ключом будет случайная строка CHAR (16). Также будет указатель даты и времени и дополнительная строка (с указателем) с именем «data».

Изо дня в день на столе будет только большое количество вставок и поисков. Поиски всегда объединяются на основе первичного ключа (так что эти 10-30 строк на пользователя объединяются).

Иногда мне нужно будет иметь возможность просматривать несколько конкретных месяцев (или даже целый год) и использовать функции mysql GROUP BY и для индекса «данных».

При текущем объеме и оценках я ожидаю, что таблица вырастет на 9,3 млн строк / месяц. Я ожидаю, что это увеличится.

Итак, мой вопрос сводится к следующему: разделы mysql, разделение программных таблиц или другое решение? и лучше ли разделить вещи по месяцам или годам? Мы работаем на RHEL, поэтому получение mysql 5.1 может быть немного трудным, но если это лучшее решение, возможно, стоит пойти.

innoDB уже был выбран для этого проекта. Повседневная работа является главной заботой.

Ответы [ 2 ]

2 голосов
/ 10 марта 2010

Это не отвечает на ваш вопрос, но об этом нужно упомянуть ...

Первичным ключом будет случайная строка CHAR (16).

Это плохая идея. Используйте неподписанный столбец BIGINT с AUTO_INCREMENT. Не нужно изобретать велосипед: вам не придется беспокоиться об управлении ключами или столкновениях таким образом.

0 голосов
/ 10 марта 2010

Разделите данные по датам (и, возможно, дополнительно это данные пользователя, и у вас много пользователей).

Затем создайте ежемесячную таблицу с SUM, COUNT, AVG и т. Д., В которой вы нуждаетесь, и соответствующую группу по. Вы также можете разбить эту таблицу на части (но даты, вероятно, не будут иметь смысла)

Затем создайте годовую таблицу, например, месячную.

Заполните ежемесячные и годовые таблицы с REPLACE INTO ... SELECT ... заявлениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...