テナントごとにデータベースがあります。それは100のディレクトリで、それぞれ2 * 50 = 100のファイルです。 100は妥当です。ディレクトリ内の10,000個のアイテムは、ほとんどのオペレーティングシステムで危険なほど高いです。
補遺
あなたはすべてのテナントで使用されている15個のテーブルを持っている場合は、1つの余分のデータベースに入れます。あなたがCommon
DB、その後、これらのsnippitsを検討することを呼び出す場合:補助金の
USE Tenant; -- Customer starts in his own db
SELECT ... FROM table1 ...; -- Accesses `table1` for that tenant
SELECT a.this, b.blah
FROM table1 AS a -- tenant's table
JOIN Common.foo AS b ON ... -- common table
注...です
GRANT ALL PRIVILEGES ON Tenant_123.* TO [email protected]'%' IDENTIFIED BY ...;
GRANT SELECT ON Common.* TO [email protected]'%';
、それは彼自身のデータベースへの '助成金' すべてに多分OKです。 彼は、Common
データへのアクセスは非常に制限されています。
代わりに、ログインを管理し、すべてのアクセスがPHP APIを通過する場合は、おそらくすべてのアクセスに対して1つのmysql 'user'しか持たないでしょう。この場合、約GRANTs
の上の私の注意は関係ありません。
Do は、テナントにすべてのものにアクセスできるようにします。システム全体が素早くハッキングされ、破壊される可能性があります。
MySQLが1つのデータベースと比べて複数のデータベースを管理する必要がある場合、追加のオーバーヘッドが追加されますか?また、すべてのテナントが共有する約15の共通テーブルがありますので、テナントごとに個別のデータベースがある場合はファイルの総数も増加します。 – MyO
追加情報を参照してください。 –