顧客ごとにデータベースを作成すると、どのような問題が発生しますか?
stackoverflowポッドキャストから、Fog CreekはFogbugzの顧客ごとにデータベースを使用していることを覚えています。これは、Fogbugz On Demandサーバーに何万ものデータベースがあることを意味すると思います。 Webアプリの開発を始めたばかりで、同様の問題を解決する必要があります(独自の分離データを持つ多くの顧客)。 顧客ごとにデータベースを使用する場合、どのような問題が予想されますか?どうすれば解決できますか? 私の最初の考え 顧客ごとのデータベースの利点 よりシンプルなデータベーススキーマ シンプルなバックアップ-他の顧客に実際に影響を与えることなく、各顧客を順番にバックアップできます。 特定の顧客データを簡単にエクスポートできます。 キャッシュパフォーマンスの向上-よりアクティブなテーブルの1つへの書き込みは、書き込みを実行した単一の顧客にのみ影響します。 ハードウェア全体で簡単に拡張できます。たとえば、1台から2台のサーバーに移動する必要がある場合、顧客の半分を新しいサーバーに移動するだけです。 欠点 MySQLは5,000個のデータベースに対応できますか?パフォーマンスは低下しますか? スキーマへの変更は、すべてのデータベースに複製するのが難しい場合があります。スキーマのバージョン管理や、データベースをあるバージョンから別のバージョンに移行する方法を理解するスクリプトなど、このための自動化された計画が本当に必要になります。 すべてのお客様に共通することを行うことは、厄介または不可能かもしれません 上記と似ていますが、すべてのお客様に対して実行したい分析は不可能かもしれません。たとえば、すべての顧客の使用状況をどのように追跡する必要がありますか?