質問: 質問です。 1つのwordpressで作成したサイトを複数のDBを使用したいです。 例えばですが、以下の画像のように1つのサイトに対してHPのデザインや動きの情報について保存するDB、顧客の情報や登録フォームなどを保存するDBといった形で分けたいと思っております。 この考えがそもそもあっているのかどうか、合っている場合どうすればいいのか また間違っていた場合、打開策があれば教えていただけると幸いです。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/40d309be89eeafa0b69e86ed9aa4d93b.png)
回答: なぜ別なDBにするかの理由に依るかと思います。 スケールアウトということなら、MySQLにはその為の機能があります。 (17.3.3 スケールアウトのためにレプリケーションを使用する) 顧客ごとにワンセットの別DBにするというのは、セキュリティの観点などから選択肢としてあるかと思いますが、言われている理由では、個別のデータベースにしなくとも、識別する項目をレイアウトに持たせれば目的は果たせます。 アクセスするアプリケーション側から考えると、分離されていない方が処理しやすいですし、ハード面で分離する理由がある場合でも、ミドルウェア側で統合されるような構成にするのが一般的だと思います。 MySQLでのデータベースというのは、他のDBMSで言うところのスキーマの概念が統合されたものです。 ですので、機能的な括りとしてデータベース(スキーマ)を分けるという事はあるので、仰っているのがサイトごとに機能が異なる(テーブル構成やレイアウトが違うし、当然プログラムも違う)というのならありかと思いますが、当然保守コストは上がるので、結局共通的な構成を考えた方が無難でしょう。