Tôi là một fan của ORM - Object Relational Mapping và tôi đã sử dụng nó với Rails trong một năm rưỡi qua. Trước đó, tôi sử dụng để viết các truy vấn thô bằng cách sử dụng JDBC và làm cho cơ sở dữ liệu thực hiện việc nâng hạng nặng thông qua các thủ tục lưu trữ. Với ORM, ban đầu tôi rất vui khi thực hiện các công cụ như coach.manager
và manager.coaches
rất đơn giản và dễ đọc.Nhược điểm của ánh xạ quan hệ đối tượng
Nhưng khi thời gian trôi qua đã có vô số các liên kết leo lên và tôi kết thúc làm a.b.c.d
đã kích hoạt truy vấn theo mọi hướng, đằng sau hậu trường. Với đường ray và ruby, bộ thu gom rác đã đi hạt và mất thời gian điên rồ để tải một trang rất phức tạp liên quan đến dữ liệu tương đối ít hơn. Tôi đã phải thay thế mã phong cách ORM này bằng một thủ tục được lưu trữ đơn giản và kết quả tôi thấy là rất lớn. Một trang mất 50 giây để tải ngay chỉ mất 2 giây.
Với sự khác biệt lớn này, tôi có nên tiếp tục sử dụng ORM không? Nó là rất rõ ràng nó có overheads nghiêm trọng so với một truy vấn thô.
Nói chung, những cạm bẫy chung của việc sử dụng khung công tác ORM như Hibernate, ActiveRecord là gì?
Bạn đang sử dụng tìm nạp không đúng? Về cơ bản 'ORM' tải nhiều như bạn nói với nó ... –
@Petar Minichev: Vâng, tôi không thể nói một câu trả lời trực tiếp cho điều đó vì tôi đang làm tất cả các loại tìm kiếm ORM cho phép tôi. Có một chút cân bằng ở mọi nơi – bragboy