Tôi gặp vấn đề về hiệu năng với việc gọi hàm getInt bên trong một ResultSetExtractor. GetInt được gọi là 20000 lần. Một cuộc gọi tốn 0,15 ms, tổng chi phí là 24 giây, trong khi chạy bên trong profiler. Việc thực hiện các câu lệnh SQL mất khoảng 8 giây (truy cập qua Primary-Key). Tôi sử dụng trình điều khiển mysql phiên bản 5.1.13, máy chủ mysql 5.1.44 và spring-jdbc-3.1.1 Bạn có ý tưởng cải thiện hiệu suất không?Vấn đề về hiệu suất với getInt trong ResultSetExtractor
mut.getMutEffect()[0]=(rs.getInt("leffect_a") != 0);
mut.getMutEffect()[1]=(rs.getInt("leffect_c") != 0);
...
mut.getMutEffect()[19]=(rs.getInt("leffect_y") != 0);
mut.getMutReliability()[0]=rs.getInt("lreliability_a");
...
mut.getMutReliability()[19]=rs.getInt("lreliability_y");
chương trình của tôi trông giống như
CREATE TABLE mutation (
...
leffect_a BIT NOT NULL,
lreliability_a TINYINT UNSIGNED NOT NULL,
...
leffect_y BIT NOT NULL,
lreliability_y TINYINT UNSIGNED NOT NULL,
...
) ENGINE=MyISAM;
Chỉnh sửa này: Trong vòng getInt tole getIntWithOverflowCheck được gọi mà dường như rất tốn kém. Có thể bật kiểm tra này không?
Statement.setFetchSize() hoạt động tốt. Cảm ơn rất nhiều. –