ResultSetExtractor 内で getInt を呼び出すとパフォーマンスの問題があります。GetInt は 20000 回呼び出されます。プロファイラー内での実行中、1 回の呼び出しのコストは 0.15 ミリ秒で、全体のコストは 24 秒です。SQL ステートメントの実行には約 8 秒かかります (主キー経由のアクセス)。私は mysql ドライバー バージョン 5.1.13、mysql サーバー 5.1.44、および spring-jdbc-3.1.1 を使用しています。パフォーマンスを改善するアイデアはありますか?
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");
私のスキームは次のようになります
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;
編集: getInt 内でメソッド getIntWithOverflowCheck が呼び出されますが、これは高価なようです。このチェックをオフにすることは可能ですか?