Какая стратегия кэширования выполняется быстрее и на сколько?Кэширование Подготовлено к соединению или разрешить пул подключений?
1) Подготовлено объединение пула (по пулу подключения). Кэширование приложения не выполняется.
for (int i=0; i<1000; i++) {
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setObject(1, someValue);
preparedStatement.executeQuery();
preparedStatement.close();
}
2) Кэширование на уровне приложения. Нет Подготовлено объединение.
PreparedStatement preparedStatement = connection.prepareStatement(sql);
for (int i=0; i<1000; i++) {
preparedStatement.clearParameters();
preparedStatement.setObject(1, someValue);
preparedStatement.executeQuery();
}
preparedStatement.close();
Этот вопрос похож на Reusing a PreparedStatement multiple times кроме того, что я ожидаю конкретных результатов тестов, а также принимая PreparedStatement Объединив во внимание.
http://drupal.org/node/550124#comment-2224630, похоже, указывает, что кэширование на уровне приложений более эффективно, чем пул PreparedStatement, но разница незначительна. Я бы хотел увидеть больше тестов, прежде чем решиться.
Я пытаюсь понять, стоит ли вводить кэширование на уровне приложения в структуру. Это повлияет на пользовательскую базу в целом, поэтому оптимизация для конкретного варианта использования не поможет. Есть ли какой-то уважаемый базисный тест, который мы могли бы изменить? – Gili
Ну, кто-нибудь из пользователей запросил эту функцию? Если нет, то, возможно, никто не нуждается в этом, и вы могли бы сэкономить немного усилий, вместо того, чтобы внедрять новую функцию, которая может не сделать многое ... просто мысль! – time4tea