Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Mysql и почти 700 тысяч записей. Правильно ли спроектирована БД?
 
 автор: IceNinja   (07.06.2013 в 13:58)   письмо автору
42.4 Кб
 
 

Делаю каталог на YII.
Предполагается несколько типов объектов, скажем, А, B и С, причём вот в такой родительской иерархии - A > B > C.
Объектов типа С предполагается около 15 тысяч в БД. А объектов А и B - существенно меньше, может, вместе наберётся ну две тысячи максимум..

Суть вот в чём. Где-то нужно хранить свойства этих объектов, причём есть два важных момента:
1) В принципе, наборы свойств для разных типов объектов различаются. Т.е. для А - это несколько свойств, около 5-10, для объектов типа В - ну тоже где-то столько же, а для С - около 15-20 свойств, может быть и больше, допустим, 20. Всего свойств, выходит, 20 + 10 + 10 = 40 где-то.
2) и при этом нужно иметь возможность добавлять ещё свойства, например, объекту типа А добавить несколько свойств, для него нехарактерных.

Короче, решил я это дело хранить так - объекты в одной таблице, свойства в другой, наборы свойств - в третьей, а саму связь свойств с объектами - в четвёртой. Примерно как-то, как на картинке (справа вверху от сообщение есть иконка приложенного файла).
И вот эта четвёртая таблица ("Objects_properties") вызывает у меня нервяк. Если там будет (15000 + 2000 )* 40 = 680000 записей. Не просяду ли я с таким объёмом? Объекты нужно будет фильтровать там, то, сё. Может, вместо Мускула использовать что-то ещё? Или спроектировать иначе?

  Ответить  
 
 автор: cheops   (07.06.2013 в 21:40)   письмо автору
 
   для: IceNinja   (07.06.2013 в 13:58)
 

Поле value в таблице Objects_properties - какой тип принимает?

В любом случае выборка в объединениях будет идти по индексам - это максимум 8 байт на запись, т.е. где-то в районе 5Мб. Это очень небольшие объемы, которые загнать в оперативную память не составит труда (на любом типе таблиц). Если у вас еще и value не очень велик, то таблица будет не очень большой. Проблемы возникают не из-за количества записей, а из-за объема таблицы (вот если у вас будет десяток гигабайт, да это может приводить к проблемам, особенно в случае MyISAM). На выборку настроенная MySQL работает исключительно хорошо (в оперативную память перегнать критичные данные можно не хуже, чем в NoSQL решениях).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования