В ближайшее время я разработаю большую систему cms, где пользователи смогут настраивать свой веб-сайт для управления новостями, продуктами, услугами и многое другое о своей компании. Подумайте о покупке без части электронной коммерции (по крайней мере пока). rdbms - это MySQL, а пользовательская база будет около 150 (может быть, больше).Выделенная база данных для каждого пользователя по сравнению с отдельной базой данных для каждого пользователя
Я пытаюсь выяснить, какой из этих двух подходов будет лучше.
DEDICATED для каждого пользователя
PROS: (? И возможного будущего шардинга)
- производительности: запрашивают меньшую базу данных только с вашими данными лучше, чем запрашивая гигантскую базу данных с каждым пользователем данными?
- легко «экспортировать мои данные» для пользователей: я могу просто сбросить свою собственную БД не извлекая все и положить его в какой-нибудь большой закодированной логической datastruct
единой базы данных для каждого пользователя
ПРОФИ:
- менее общие накладные
- статистика: только один децибел для запроса, чтобы получить и агрегатное все, что мне нужно
- резервная копия: одна свалка (не уверен в этом, потому что у меня нет опыта в кластерном захоронении)
В каком направлении вы бы поехали? Я не думаю, что shopify создал специальную базу данных для любого зарегистрированного пользователя ... или, может быть, они сделали?
Я бы хотел, чтобы более опытные люди, чем я, помогли мне разобраться в лучшем пути и всех переменных, которые я не могу догадаться прямо сейчас из-за моего невежества.
единая база данных, вообще говоря, является лучшим вариантом, потому что ее легче поддерживать и изменять. вы должны смотреть на разделение вашей базы данных позже по мере роста db. 150 пользователей - это то, о чем вам нужно беспокоиться. MySQL может справиться гораздо легче. –
Первый вариант не является вариантом. Даже и не думай об этом! –
Обратите внимание, что база данных mysql на самом деле является «схемой», а не базой данных в традиционном смысле. –