MySQLを使用しているWebサイトで
アクセス数が増えパフォーマンスが悪くなったことから
改善案を提案することになりました。
下記案ではどちらがおすすめなのかその理由をご教示いただけますでしょうか。
一番の理想はSQLServerを二台で冗長化することですが
そこまでの予算はないものとします。
案1:MySQLを複数台で構成する
費用 ハード一台
メリット:プログラムの修正が不要
冗長化できるのでデータの保険にもなる
案2:SQLServerに入れ替える
費用 ハード一台+SQLServerのライセンス料
クエリの書き換え
メリット:一つ一つのアクション(参照・更新)の速度が向上する
よろしくお願いします
No.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にするだけでおおきくパフォーマンスが
あがる可能性があります。
ありがとうございます。
上層部の方ではお金をかけて強化したいようなので
(このご時世ですが)SQLServerに移行するメリットを深堀してゆくことになりそうです。
でもMySQLの技術進歩していることが分かりました。
MySQLを使用し続けることも提案してみようと思います。
大変参考になりました。
No.1
- 回答日時:
まずは本当にDBがシステムのボトルネックになっているのかどうかを検証してください。
その上で、MySQLの設定がきちんとされているかを確認する必要があります。
InnoDBバッファの値やsort_buffer_sizeは適正でしょうか。
OSはLinuxですか、それともWindows?
例えば、DISK I/OがボトルネックになっているのならSQLServerに変更してもパフォーマンスの向上は見込めないと思います。
なお、MySQLのパフォーマンスチューニングについては「実践ハイパフォーマンスMySQL 第2版」が詳しいです。一読をお勧めします。
この回答への補足
nora1962さんアドバイスありがとうございます。
自分の所属がシステムではなく、業務推進(改善)で
プログラムコードやパフォーマンスチューニングを実施することは出来ず、
現場担当者に依頼する立場なのです。
担当者にヒヤリングしたところ、
MySQLの限界で、
特に更新、削除に時間がかかるのがネックだそうです。
チューニングは何度か行なっているようです。
OSはLinuxです。
一点質問させてください。
DBがシステムのボトルネックになっているかどうかの検証はどういったものを計測すれば出てくるのでしょうか。
何度もお手数ですがよろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- 分譲マンション 古い分譲マンション・管理組合の初、理事長(女性)です。不明点①~⑥についてご意見をお願いします。 7 2022/11/07 13:03
- PHP 「基礎からのMySQL 第3版 Kindle版」を数年前購入して全部やりました。 1 2022/09/15 05:32
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
- 分譲マンション 古い分譲マンション・管理組合の初、理事長(女性)です。不明点①~⑥について 1 2022/11/07 03:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
主キーにインデックスは貼らな...
-
[ BETWEEN ] vs [ >= AND <= ]
-
インデックスの再構築の意味っ...
-
ビューにインデックスを設定で...
-
年と月が別カラムの場合のSQL
-
複数のDBでjoinする場合のindex...
-
mysql IN句に1データだけ指定...
-
【SQLServer】IS NULLのパフォ...
-
テキスト項目255ケタのメリット...
-
コクヨ タイトルブレーンでイ...
-
『ラミネートインデックスシー...
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
ACCESS 一番最新の日付の金額...
-
SELECT文でのデッドロックに対...
-
オラクルではできるのにSQLSERV...
-
Accessでクエリを完了できませ...
-
2つの項目が重複するレコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[ BETWEEN ] vs [ >= AND <= ]
-
主キーにインデックスは貼らな...
-
【SQLServer】IS NULLのパフォ...
-
ビューにインデックスを設定で...
-
mysql IN句に1データだけ指定...
-
インデックスの再構築の意味っ...
-
コマンドプロンプト エラー
-
年と月が別カラムの場合のSQL
-
投資信託を初めて購入しようと...
-
コクヨ タイトルブレーンでイ...
-
数学でunprimedとは何を意味し...
-
ホームページがGOOGLEにインデ...
-
テキスト項目255ケタのメリット...
-
複数のDBでjoinする場合のindex...
-
500Gのテキストファイルから全...
-
サーバ負荷を抑える大量データ...
-
毎月10万円投資資金があるとし...
-
indexの使用頻度を調べる方法
-
SQL Serverの容量見積りについて
-
outlook2007 検索できないんです
おすすめ情報