Есть Entity
House (id, name, param1,....)
HouseElement (id, id_house, element, count, ....)
То есть все элементы попадают в таблицу HouseElement. Так как элементов очень (сотни домов по сотни элементов) много хотелось бы их разделить на отдельные таблицы HouseElement_1, HouseElement_2, HouseElement_3, ....
Можно ли это как-то реализовать на Symfony2 + Doctrine2?
Александр: это преждевременная оптимизация. Если вам так интересно - нагенерьте фикстурками данных в таблицу в те самые пару миллионов и проверьте как себя ведет база данных.
В целом если у вас в рамках вашей логики будут учавствовать в запросах все таблицы, то смысла делить таблицу на партиции нету особо.
Доктрина по умолчанию не поддерживает партиционирование, для этого нужно написать довольно много кастылей, но организовать это дело можно. Да и не вижу смысла в этом. Партиционирование полезно в основном тогда, когда у нас устаревают данные быстро и нужно как-то это дело разбивать.
Сергей Иванов: это понятно, просто мне кажется что тут партиционирование не нужно вовсе. Если бы скажем мы вели учет заказов или что-то в этом духе, логи какие-то, тут да, можно было бы получить какой-то профит. А так...
Сергей Протько: Если партиционирование сделать по id_house, например с 1-100,101-200,201-300... Данные из разных House редко пересекаются в одном запросе
Александр: это да, но по сути ничего не меняется. У нас все так же используются все партиции, нагрузка на базу остается прежней, все так же все индексы должны висеть в памяти а штуки типа уникальных индексов уже сильно усложняются. Профит сомнительный при значительном увеличении сложности.