Гибернация настройки для высокой скорости вставки и выбора в секунду - PullRequest
0 голосов
/ 30 августа 2010

У нас есть приложение для сбора данных с двумя основными модулями, взаимодействующими с БД (через Hibernate) - одно для записи собранных данных в БД и одно для чтения / представления собранных данных из БД.

Средняя скоростьчисло вставок составляет 150-200 в секунду, средняя скорость выбора составляет 50-80 в секунду.

Требования к производительности для обоих сценариев записи / чтения можно определить следующим образом:

  1. Запись вБД - здесь нет особых временных требований или требований к производительности, БД должна нормально работать со скоростью 150-200 вставок в секунду
  2. Чтение из БД - вновь собранные данные должны быть доступны пользователю в течение 3-5 секунд после попадания вDB

Посоветуйте, пожалуйста, лучший подход для настройки политик кэширования / буферизации / работы Hibernate для оптимальной поддержки этого сценария.

BTW - MySQL с механизмом InnoDB используется под Hibernate.

Спасибо.

PS: Говоря "150-200 вставкаs в секунду "Я имею в виду среднюю скорость входящих пакетов данных, а не фактическое количество записей, вставляемых в БД.Но в любом случае - мы должны нацеливать здесь очень высокий уровень вставок в секунду.

1 Ответ

0 голосов
/ 30 августа 2010

Сначала я прочитал бы эту главу документации по гибернации.

А затем рассмотрим следующее

Установка

  • Пакетные вставки и сделать несколько сотен за транзакцию. Вы говорите, что можете терпеть задержку 3-5 секунд, так что это должно быть хорошо.

Выбор

  • Запросы могут быть в порядке со скоростью 50-80 в секунду, если запросы очень просты
  • Индексируйте свои данные соответствующим образом для общих шаблонов доступа
  • Вы можете попробовать кэш второго уровня в спящем режиме. См. эту главу . Сам этого не делал, поэтому не могу комментировать дальше.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...