我在ResultSetExtractor中调用getInt时遇到了性能问题。GetInt被调用了20000次。一次调用耗费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 方法,这似乎很耗费资源。是否可以关闭这些检查?