Sử dụng Hibernate để kết nối cơ sở dữ liệu chậm hơn JDBC

Hello mọi người,

Ngày trước khi em làm form đăng nhập sử dụng JDBC để lấy data từ DB, bây giờ dùng Hibernate để làm điều đó thì em thấy cái vòng tròn nó xoay lâu hơn. Không biết là tại sao ạ?
Ai có thể giải đáp giúp em được không ạ?

Em cảm ơn.

Tất nhiên rồi cậu :smile: Cậu là nạn nhân của n + 1 problem.
Dùng JDBC cậu có thể chọn được cách gọi DB (join bảng chẳng hạn), trong khi ở hibernate cậu sẽ cố gắng gọi rất nhiều bảng để gộp dữ liệu. Nếu cậu có index đúng, và config đúng thì có thể sẽ nhanh hơn, nhưng chỉ cần thiếu 1 index, hoặc config sai 1 chỗ, performance của cậu sẽ bị giảm đi rõ rệt.

5 Likes

Bạn sử dụng native SQL để truy vấn sẽ nhanh hơn ORM.

4 Likes

Config đúng. Cụ thể là sao ạ?

Hì hì, ý tớ là việc sử dụng các hibernate annotation để đánh dấu liên kết giữa các entity ấy. Đó cũng là configuration.
Bản thân tớ cũng không hiểu hết nó, nhưng tớ từng có thấy việc config sai có ảnh hưởng rõ rệt tới performance khi lấy dữ liệu về ở 1 component trong hệ thống của bọn tớ. Team đó cũng đã khá vất vả để tìm ra cách giải quyết vấn đề.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?