Mysql xử lý dữ liệu lớn như thế nào?

Nancru

CongDongJava Project Leader
Staff member
9/10/11
1,640
307
83
Hi all,

Hiện project mình đang nắm một project có vấn đề về performance. Câu chuyện về chuyện tình performance này sẽ là như thế này:

Giả sử system mình có 100k records và mình có 2 case:

- Case A: mình có 2000 records in that 100k records with status READY để chờ xử lý
- Case B: mình có toàn bộ 100k records with status READY để chờ xử lý.

Với mỗi lần xử lý thì chỉ lấy 200 records.

Result:
Case A: Chỉ tốn 1 phút cho 200 records.

Case B: cực kỳ lâu, không thể chờ tới khi nó kết thúc, mỗi records nó xử lý cần tới 15s.

Sau khi đo đạc, mình thấy rằng các method xử dụng của hibernate, như là getResultList, getSingleResult cần tới 1,5-2s cho mỗi lần gọi cho case B, nhưng ở case A thì ngược lại, mỗi lần gọi chỉ tốn vài miliseconds.

Mình nghi ngờ vấn đề có thể đến từ MySQL, hy vọng anh em nào đã "kinh" qua xin chia sẻ.

Regards.
 

Nancru

CongDongJava Project Leader
Staff member
9/10/11
1,640
307
83
Problem solved: Query quá phức tạp, nên đã gọt dũa cho nó nhỏ lại. @@