プロが教える店舗&オフィスのセキュリティ対策術

MySQLを使用しているWebサイトで
アクセス数が増えパフォーマンスが悪くなったことから
改善案を提案することになりました。

下記案ではどちらがおすすめなのかその理由をご教示いただけますでしょうか。

一番の理想はSQLServerを二台で冗長化することですが
そこまでの予算はないものとします。


案1:MySQLを複数台で構成する
   費用 ハード一台
   
   メリット:プログラムの修正が不要
        冗長化できるのでデータの保険にもなる
        
案2:SQLServerに入れ替える
   費用 ハード一台+SQLServerのライセンス料
      クエリの書き換え
   メリット:一つ一つのアクション(参照・更新)の速度が向上する

よろしくお願いします

A 回答 (2件)

解決策ではないですが、気になったことを



>アクセス数が増えパフォーマンスが悪くなった

MySQLの問題と言っても大きくいって4つは検証すべきことがあります

(1)インデックスの問題
単純に非効率なSQLを吐いていたらなんのSQLでやってもたいして
改善はみこめません。
ただし、更新・削除が遅いとなるとインデックスでなんとかなるとも言えません。

(2)エンジンの問題
MySQLの特徴はエンジンが選べること
特に高速な処理をしたい場合はトランザクションを設定せずにMyISAMを
利用するのも手です。また一時的にHEAPをつかったりいろいろ改善の手は
あるかも知れません。

(3)MySQL自体の問題
ここ数年話題になっている「そもそもMySQLはフロントエンドがおそいので
エンジンを活かしきっていない」という問題があります。
そこでNoSQLなどがもてはやされたりしているのですが、さらにすすんで
「HandlerSocket」などで高速化するのも検討できるようになってきました。

参考:http://itpro.nikkeibp.co.jp/article/Interview/20 …

(4)ハードウェア的な問題
ハード的な問題もあるし、メモリの利用状況などもあるので
ハードの強化でなんとかなるかもしれません。
とくにMySQLはマルチCPUに比例的に高速化ができるらしいので
やすくてもマルチコアCPUにするだけでおおきくパフォーマンスが
あがる可能性があります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

上層部の方ではお金をかけて強化したいようなので
(このご時世ですが)SQLServerに移行するメリットを深堀してゆくことになりそうです。

でもMySQLの技術進歩していることが分かりました。
MySQLを使用し続けることも提案してみようと思います。

大変参考になりました。

お礼日時:2011/10/20 10:14

まずは本当にDBがシステムのボトルネックになっているのかどうかを検証してください。


その上で、MySQLの設定がきちんとされているかを確認する必要があります。
InnoDBバッファの値やsort_buffer_sizeは適正でしょうか。
OSはLinuxですか、それともWindows?
例えば、DISK I/OがボトルネックになっているのならSQLServerに変更してもパフォーマンスの向上は見込めないと思います。
なお、MySQLのパフォーマンスチューニングについては「実践ハイパフォーマンスMySQL 第2版」が詳しいです。一読をお勧めします。

この回答への補足

nora1962さんアドバイスありがとうございます。

自分の所属がシステムではなく、業務推進(改善)で
プログラムコードやパフォーマンスチューニングを実施することは出来ず、
現場担当者に依頼する立場なのです。

担当者にヒヤリングしたところ、
MySQLの限界で、
特に更新、削除に時間がかかるのがネックだそうです。
チューニングは何度か行なっているようです。
OSはLinuxです。

一点質問させてください。
DBがシステムのボトルネックになっているかどうかの検証はどういったものを計測すれば出てくるのでしょうか。

何度もお手数ですがよろしくお願いします

補足日時:2011/10/19 07:59
    • good
    • 0

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