Я вентилятор ORM - объекта реляционного сопоставления, и я использовал его с помощью рельсов в течение прошлого года. До этого я использую, чтобы написать RAB-запросы с использованием JDBC и сделать базу данных сделать тяжелую подъем через хранимые процедуры. С ORM я был изначально рад делать такие вещи, как Coach.manager
и Manager.woaches
, которые были очень простыми и простыми для чтения.
Но со временем было многочисленные ассоциации, ползущиеся, и я закончил делать a.b.c.d
, которые были стремительными запросами во всех направлениях, за кулисами. С рельсами и рубиновым коллектором мусора пошли гайки и воспользовались безумным временем для загрузки очень сложной страницы, которая включает в себя относительно меньшие данные. Мне пришлось заменить этот код стиля ORM простым сохраненным процедурой, а результат, который я видел, был огромным. Страница, которая заняла 50 секунд, чтобы загрузить, теперь занимает всего 2 секунды.
С этой огромной разницей я должен продолжать использовать ORM? Очень ясно, что у него сильные накладные расходы по сравнению с необработанным запросом.
В целом, каковы общие подводные камни с использованием структуры ORM, как Hibernate, Acciverecord?