Ваш вопрос довольно широкий.
a) Убедитесь, что объединенные базы данных не страдают от снижения производительности с помощью таких вещей, как операторы JOIN, когда, скажем, 1000 баз данных объединены, даже если каждая из них мала. Что касается вашей ссылочной целостности ... которая, как я полагаю, основана на auto_increment
... вы можете заменить эти отношения, изменив схему и вытеснив UUID или аналогичное уникальное непоследовательное значение. Или даже пара суррогатных ключей в дополнение к вашему автоматическому приращению PK.
b) Выполните бенчмаркинг , чтобы убедиться, что ваше приложение будет реагировать в пределах производительности
в) Существует ли прямая рентабельность инвестиций для этого? Каковы долгосрочные выгоды от затрат на миграцию? Стоимость уменьшенной сложности увеличена (если есть)?
d) Как это влияет на ваши планы резервного копирования и аварийного восстановления? Это делает их дешевле? Помедленнее? Дороже?
Подход к инструментам абстракции и управления:
если бы это был я , в зависимости от ситуации я бы сохранил масштабируемость, которая поставляется с шардингом для каждого клиента, и создал бы набор инструментов управления для абстрактного создания одной виртуальной базы данных. Используя эти инструменты, вы можете приобрести упрощенное управление без потери технической гибкости. Я подозреваю, что вы хотите упростить стоимость управления всеми этими базами данных (на основании вашего заявления о развертывании). Создание «панели управления» для вашей фермы может быть хорошим способом упростить сложную систему (особенно, когда развертывания могут использовать разные версии схемы).