Hibernate Multitenancy с дискриминатором

Спящий режим пока не поддерживается реализация мультитенантности с помощью стратегии дискриминатора. Мы думали о реализации этой стратегии в нашем проекте. Но у нас были некоторые сомнения относительно производительности запросов в целом. Будет ли производительность запроса хуже, чем при подходе с отдельной базой данных/схемой, поскольку в этом случае запрос выполняется по одной схеме данных многих арендаторов? Или есть какие-то способы улучшить производительность запросов в этом случае, кроме создания индексов?

Мы рассматриваем подход «Дискриминатор», так как лучше выполнять резервное копирование и восстановление, если данные находятся в одной схеме.


person Dhanush Gopinath    schedule 03.07.2012    source источник


Ответы (1)


Это потенциально может повлиять на производительность наверняка. Аргумент «единая резервная копия/восстановление» действительно уместен только в случае какой-либо формы катастрофы; обычно вы хотите, чтобы восстановление было как можно более детальным (читай, наименее разрушительным).

Что касается производительности, вы можете (в зависимости от вашей базы данных) посмотреть на использование секционирования по этому значению дискриминатора. Базы данных, поддерживающие секционирование, обычно учитывают секционирование при построении планов запросов. Хотя некоторые требуют, чтобы значения раздела предоставлялись как литералы, а не как параметры, что иногда может быть сложно.

person Steve Ebersole    schedule 03.07.2012