2013-11-20 5 views
0

У меня есть таблица ПОСТЫ в базе данных MySQL ее столбцыОптимальный в Подходе проектирования баз данных

Column  DataType 
POSTID  Int(11) PK 
Userid  Int(11) FK 
Content  varchar(100) 
Type   TINYINT 

Type field can take values image, text, video, link, question, repost. 

Мой вопрос заключается в конструкции оптимальным, если это таблица, как ожидается, иметь слишком много записей, как миллиарды записей. Какие факторы следует принимать во внимание? Должен ли я разделить эту таблицу на несколько таблиц, таких как «Изображения», «Тексты», «Видео», «Ссылки», «Вопрос», «Репост» или «Я должен пойти на одно табличное решение?

+0

Подумайте о * Разделение *. –

ответ

1

Одно табличное решение - это то, как вам следует идти, так как это будет много проще запросить и индексировать. В любом случае, если ваш продукт является новым, эта таблица не будет иметь столько записей за долгое время, а преоптимизация - лучший способ потерять время во время разработки.

Я советую вам сохранить его, как и вы, и подумать о решениях, которые уже существуют, когда у вас появятся эти проблемы в производстве (возможно, SQL-движок не лучший для такого рода данных?).

Кроме того, я бы изменил тип колонки type от TINYINT до ENUM.

+0

Вы правы в том, что меняете TINYINT на ENUM, но опять же, продукт не новый, его просто улучшение, у нас есть миллион записей почти в 100 местах, в общей сложности это составляет 0,1 миллиарда, тогда для каждой записи мы будем обрабатывать несколько типов отчетов (ежемесячно), поэтому, если я сохраню, что ежемесячные данные в таблице я могу разделить эту таблицу отчетов снова, я хочу ответить, что оптимизация дизайна адресов –

Смежные вопросы