Является ли создание многих схем в H2 хорошей стратегией для шардинга и производительности? - PullRequest
0 голосов
/ 18 августа 2011

В списке рассылки кто-то обнаружил следующую проблему:

  • У нас миллионы пользователей (от 1 до 5 МБ данных на пользователя)
  • Данные данного пользователя не соответствуютполучить доступ или изменить другие пользовательские данные
  • Как мы можем реализовать разбиение с использованием H2, оставаясь при этом быстрым?

Кто-то ответил на следующее:

  • Вы можете создать1 схема на пользователя
  • Преимущество заключается в том, что пользовательские данные будут располагаться в отдельных экземплярах таблиц
  • Следовательно, это повысит производительность при обновлении этих таблиц

Мой вопросэто:

  1. кто-нибудь пытался это сделать?
  2. Действительно ли это интересная стратегия для разделения данных и улучшения / сохранения производительности?

1 Ответ

1 голос
/ 18 августа 2011

Если у вас миллионы пользователей и в среднем по 2 МБ данных на пользователя, вы получите около 2 ТБ.Я думаю, что это слишком много для хранения в одном файле базы данных.С другой стороны, вы также не хотите использовать миллионы файлов баз данных.

Я бы использовал несколько баз данных, каждая из которых имеет до 1000 пользователей (в зависимости от объема данных).

Затем можно создать несколько схем (но учтите, что для H2 метаданные схемы хранятся в памяти) или добавить столбец userId в каждую таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...