あなたの質問はかなり広いです。
a)たとえば、それぞれが小さい場合でも1000個のデータベースがマージされる場合に、マージされたデータベースがJOINステートメントなどのパフォーマンスの低下に悩まされないようにします。参照整合性については...私がauto_increment
基づいていると思います...スキーマを変更し、UUIDまたは同様の一意の非順次値を置き換えることで、これらの関係を置き換えることができます。または、自動インクリメントPKに加えて、代理キーペアもあります。
b)ベンチマークを実行して、アプリケーションがパフォーマンス制限内で応答することを確認します
c)これを行うための直接的なROIはありますか?移行の費用に対する長期的な費用便益は何ですか?複雑さの減少は、(もしあれば)コストを増やす価値がありますか?
d)これはバックアップと災害復旧計画にどのように影響しますか?それはそれらを安くしますか?もっとゆっくり?もっと高い?
抽象化および管理ツールのアプローチ:
私の場合、状況に応じて、クライアントごとのシャーディングに伴うスケーラビリティを維持し、1つの仮想データベースを抽象的に作成するための一連の管理ツールを作成します。これらのツールを使用すると、技術的な柔軟性を失うことなく、簡素化された管理を取得できます。(デプロイメントステートメントに基づいて)これらすべてのデータベースを管理するコストを簡素化したいと思います。ファームの「コントロールパネル」を作成することは、複雑なシステムを単純化するための良い方法です(特に、デプロイメントで異なるスキーマバージョンを使用する場合)。