У меня проблема с производительностью при вызове getInt внутри ResultSetExtractor. 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, который кажется дорогим. Можно ли отключить эти проверки?