電子書籍の厳選無料作品が豊富!

複数インスタンス
サーバーマシン1台につき1インスタンスに出来れば良いんですが、コストの関係上、
サーバーマシン1台に複数のインスタンスを作成しようとしています。
Oracleでは複数インスタンスでの運用はパフォーマンスに大きく影響するので
あまりやらない方が良いと聞きますが、MySQLではどうでしょうか?
また、MySQLのWindows版、Linux版で、この点について違いはありますでしょうか?

A 回答 (2件)

インスタンスという話でしたので、複数のMySQLサーバーのプロセスを立ち上げて、別々の独立したサーバーのプロセスを立ち上げると理解していました。



MySQLは、Oracleのように"1イスタンス = 1データベース"という管理のしかたでは無いので、ひとつのMySQLサーバープロセス上に複数のデータベースを作成できます。もともとMySQLではあまり"インスタンス"という言葉を使わないですし、使った場合には、大抵MySQLサーバーの実行プロセスを指します。

ひとつのMySQLサーバー内に複数のデータベースを作成した場合に問題になるのは、サーバーの設定が全てのデータベースで共通なので、データベース毎に制限をすることが出来ない点があります。なので、逆に言えば何もしなくても複数のデータベースを作成することは出来ます。

質問にあったように、1つと複数のデータベースを作成した場合に性能についてだけ、いうならば1つでも複数でも基本的には変わりがありません。ただ、複数のデータベースを作成するということは、複数のアプリケーションからのアクセスが集中するということですので、複数のDBをインストールしたことによる性能劣化が無くても性能上の問題が発生しやすくなるので、注意が必要です。
    • good
    • 0
この回答へのお礼

再度回答していただき、ありがとうございます。
なるほど、MySQLではインスタンスの意味がOracleと違うわけですね。

今回は、
・複数のデータベースを作る(テーブル構造は同じ)
or
・識別IDを持たせて1つのデータベースにまとめてしまう
のどちらが良いのか悩んでいたのですが、どちらでも問題無さそうですね。
むしろ、検索等で絞り込まれている分、前者の方が良い気がしますね。
バックアップリストア等、管理の面でも良さそうです。

ありがとうございました!

お礼日時:2010/05/18 13:58

MySQLでもメモリ、Disk I/O、CPUパワー等を複数のインスタンスで分け合うことになりますから、性能を求める環境で行うことはお勧めしません。

また、ポート番号やデータディレクトリの場所と別々に設定しなければならないなど、管理も面倒になるので、特殊な環境以外では、お勧めできません。

Windows、Linuxどちらでもインストーラ版(msiやrpm)を使ったインストールより、zipやtarballで圧縮されたアーカイブ版を使った手動インストールのほうが複数インスタンスを立ち上げる場合には設定がしやすいとは思いますが、設定が面倒であることには変わりありません。

Linux版では"UNIXソケットの設定"、Winodws版では"名前つきパイプ"、"共有メモリ"という部分が、それそれのインスタンスごとに別々に設定をしなければならないといったところがありますが、他にもインスタンス毎に別々に設定しなければならない部分がありますので、それほど大きく違うという点はありません。

参考URL:http://dev.mysql.com/doc/refman/5.1/ja/multiple- …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

spiederさんのおっしゃっている事は、
・MySQLを1つのサーバーマシンに複数インストールする。
というケースでしょうか?
それとも私が想定している、
・MySQLを1つのサーバーマシンに1つインストールし、そこでcreate databaseコマンドで複数インスタンスを作成する。
でしょうか?
質問が曖昧で、誤解を与えてしまった可能性がありますでしょうか?
お手数ですが、再度ご回答願えませんでしょうか。
よろしくお願いします。

お礼日時:2010/05/17 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す