Когда дело доходит до управления базой данных, очевидно, проще управлять единой базой данных, в которой есть все данные о клиентах (мультитенантная).
Если бы я создавал приложение для одного клиента, это означало бы, что каждый новый клиент будет иметь свою собственную отдельную базу данных mysql.
Это означает, что если у меня будет 10 тысяч клиентов, у меня будет 10 тысяч баз данных mysql, по одной для каждого клиента.
Было бы управлять этим кошмаром? (апгрейды и т. д.)
некоторые вещи будут проще, например, резервное копирование базы данных клиентов. Кроме того, если клиент использует больше ресурсов, можно сделать резервную копию и переместить его базу данных на сервер, который не так сильно используется и т. Д.
Комментарии?
Лично я считаю, что целостность и безопасность данных каждого клиента важнее любых других соображений. Я бы никогда не стал настраивать 2 разных клиента на использование одной и той же базы данных. Если вы выбрали этот бизнес, то я считаю, что ваша ответственность и ваше бремя состоит в том, чтобы создать среду, обеспечивающую целостность и безопасность данных каждого клиента. Если это означает, что в результате у вас больше затрат на оборудование и больше накладных расходов на управление, то это стоимость ведения бизнеса.
Я бы предпочел консолидацию с использованием меньших баз данных. Управление базами данных размером 10 КБ может показаться кошмаром, но в то же время есть возможность для лучшего восстановления после сбоев.
Ресурсы - хороший повод для выявления и решения проблем, когда эти базы данных находятся на разных аппаратных ресурсах.
Возможно, вы сможете сделать это в индивидуальном порядке. тяжелые клиенты ввода-вывода на отдельных базах данных и групповые менее интенсивные. Вероятно, не существует стандартного решения, которое сработало бы здесь, если бы диапазон мог увеличиваться до 10 000.