我在 ResultSetExtractor 中调用 getInt 时遇到性能问题。GetInt 被调用 20000 次。一次调用花费 0.15 毫秒,总花费为 24 秒,同时在分析器内部运行。SQL 语句的执行大约需要 8 秒(通过主键访问)。我用的mysql驱动版本5.1.13,mysql server 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 方法,这似乎很昂贵。是否可以关闭此检查?