0

ショートバージョン:

いくつかの共有テーブルと、同じデータベース内の他のテナントごとのテーブルを使用しても問題ありませんか?

より長いバージョン:

私たち (私とスタックオーバーフロー以外の何人か) は、いくつかのマルチテナント SAAS を設計しています。

現在、共有データベースと共有スキーマ アーキテクチャを使用しており、各テーブルにはテナントのデータを区別するための tenant_id 列があります。「users」テーブルのような小さなデータ セットの場合 (1000 のテナントがあり、それぞれに 10 人のユーザーがいる場合 = 10,000 行)、これは問題なく機能します。

ただし、非常に大きくなるテーブルがいくつかあります。たとえば、「ファイル」テーブルです。各テナントには、メタデータをデータベースに格納する必要があるファイルが 100 万個ある場合があります。1,000,000 個のファイルを持つ各テナントは、10 億行のテーブルを作成します。私の心配は、これを操作するのが遅くなることです。テナントごとにファイル テーブルを分割したいと考えています。

質問:

  1. いくつかの共有テーブルと他のテナントごとのテーブルを持つことは容認/推奨されますかfiles_<tenant_id>?

    スケーラビリティ、バックアップ、保守性などに関する批評をお願いします。

  2. このような大規模なデータを処理するための他のオプションは何ですか。
  3. これはまだ共有スキーマと見なされますか?
4

1 に答える 1

0

どのデータベース?MySQLがデータベースまたはスキーマを意味する方法でデータベースを意味しますか?

本当に、テナントは 100 万個のファイルを持つつもりですか? それらをw tenant-per-dbで分割する方が簡単です

私たちは tenant_id スタイルのシステムを持っていますが、もう一度やるとしたら、スキーマごとに 1 つのテナントを使用します。

于 2012-09-20T17:51:48.930 に答える