• 締切済み

PostgreSQL と MySQL の速度の比較

私は仕事の一つでゲームのサーバーを管理をしている者です。ゲームサーバーのデーターベースは昔からPostgreSQLを使っております。おかげさまでそれなりの会員数を持つサイトなのですが、慢性的にDBの負荷が大きい状態が続いております。 そこで質問なのですが、現在のPostgreSQL(8.1.4)をMySQLに差し替えることによりどの程度の改善が期待できるか知りたいのです。 なお、現在のPostgreSQL環境では速度の最適化でできることはほぼやっております。(buffer数の最適化、fsyncをoff、update頻度の高いテーブルを高速なハードディスクに置くなど)

みんなの回答

回答No.1

性能測定のための単純なSQLの実行や、性能測定モデルでの比較ならともかく、出来上がっているシステムのRDBMSを変更した場合にどの程度性能が改善されるかなど、答えられるものではないことは、あなたのスキルなら十分に分かっていると思うのですが? MySQLで同様のものを並列して構築し、チューニングしながら実測する以外に、答えは出ないのではないでしょうか?

moritan2
質問者

補足

コメントありがとうございます。もちろん全体のパフォーマンスがどうなるかなど、言えるはずもありませんが、私の期待しているのは、たとえば、 btreeインデックスによるselectがxxxの方が?割くらい速いよ、とか updateはどうだ、とか updateでインデックスが多いとこんな傾向があるとか そういう話をお聞かせいただき参考にさせていただきたいのです。

関連するQ&A

  • MySQLとPostgreSQLについてのSQLインジェクション

    はじめて質問させていただきます。 よろしくお願いします。 現在、私は大学の研究テーマでデータベース(MySQL、PostgreSQL)を使っているCGIを自作し、それぞれのデータベースについてSQLインジェクションの脆弱性について調べる、という研究を行っています。 ブラインドSQLインジェクションについて調べているのですが、 PostgreSQLの場合、pg_tablesというテーブルにデータベースのテーブル一覧表がのっていて、それを参照することでテーブル名が取得でき、いろいろ悪いことができてしまいますが、MySQLの場合、ブラインドSQLインジェクションを起こそうと思った場合どのようなコマンドを使えばよいのでしょうか? SHOW TABLESで使用中のデータベースのテーブル一覧は取得できますが、それをクエリの一部として使うことはできるのでしょうか・・・? また、全く関係ない質問なのですが、このCGIはRubyで記述して作りました。Rubyにはプリペアドステートメントという機能があるのですが、これをデータベースにアクセスするすべての箇所で用いればSQLインジェクションは100%起きないといえるのでしょうか?(現在考え得る範囲でよいのでお願いします) 卒論で困っているので知っている方がおられましたらどうかよろしくお願いいたします。

  • データベース(MySQL,PostgreSQL)付きのレンタルサーバー

    データベース(MySQL,PostgreSQL)付きのレンタルサーバーを探しています。 「データベース付き」自体はたくさんあるのですが、データベースへのアクセスがそのレンタルサーバーからでしか許可されてないものが多くて、それでは要件を満たせません。 データベースにIPアドレスで接続できて(例えばODBC接続が許可されていれば言うことはないです)、レンタルサーバーでおすすめのところ、それなりに安いところがあれば教えてください。

  • PostgreSQLの書籍を参考にMySQLで

    初心者ですみません。 これからPHP+MySQLで掲示板を作ろうと思うのですが、データベースは初めてです。 PHPやサイト作成は経験があります。 いろいろなサイトを検索してみたのですが、なかなか詳しくPHP+MySQLで掲示板を作る解説があるサイトがありません。 そこで書籍を買ってみようと思ったのですが、軽く掲示板を作るような書籍はあっても本格的に掲示板を作ることが目的の書籍がありませんでした。 唯一、廃盤になったと思われる「Web掲示板作成で学ぼう!PHP4実践ガイド―PostgreSQL対応 」というのがあったのですが、MySQLではなくPostgreSQL対応版でした。 中身は見ていないのですが、経験者の皆様が予想するとした場合、この書籍を見ながらPostgreSQLのソースをMySQLで代用できると思いますか? ちなみにMySQLにしたい理由は単に借りているサーバーがMySQLにしか対応しておらず、自分のPCにはXAMPPが入っているからです。どちらが優れているとかはわかりません。 あと、何かの書籍で見たので記憶が曖昧ですが、MySQLとPostgreSQLのどちらでも使えるクラス群?関数群?みたいなライブラリがあるようなのですが、このライブラリを使えば上記書籍のPostgreSQLでもMySQLで対応できると考えて良いのでしょうか? ライブラリ名とか覚えてなくてすみませんが・・・。 お手数ですがよろしくお願い致します。

    • ベストアンサー
    • MySQL
  • DBサーバーはどれがいいのですか?

    MySQL、PostgreSQL、SQLサーバー、ORACLEデータベースについて 仮に、ユーザが5000万人のSNSを作った場合、MySQLやPostgreSQLで対応できますか? 検索に時間がかかったりするのでしょうか? その場合、DBをORACLEにしたほうがいいのでしょうか? ■費用について もし、DBサーバーを1台設置して、ORACLEにした場合、初期費用や毎月のコストはどのくらいになるのでしょうか? ORACLE対応のDBサーバーの金額等も教えて頂ければ幸いです。 あと、SNSの会員が10万人までだとしたら、 MySQL、PostgreSQL、SQLサーバー、ORACLEのうちだと、どれがコスト的に一番効率的でしょうか?

  • PostgreSQLとMySQLの同時運用

    今現在、PHP・PerlなどによるCGIのテスト用のサーバを稼働させています。 そこではMySQLが稼働しているのですが、その同じサーバでPostgreSQLを同時に動かすことは可能でしょうか? 可能であれば、同じサーバで稼働させてテスト環境を動かしたいと考えています。 アドバイスお願いいたします。

  • MySQLからDB2のデータベース参照についてです。

    MySQLからDB2のデータベース参照についてです。 linuxサーバー上のMySQLを利用して、Windows サーバー上のDB2のデータベースを参照したいと思っています。実際できるかどうかも分からず、できるとすればどのような方法があるのでしょうか?

  • PostgreSQLからOracleの移行について

    PostgreSQLからOracleへの移行を行うマイグレーションツールはありますでしょうか。お金はいくらかかってもかまいませんので、移行をスムーズにかつ工数をかけずにできるツールをご紹介頂けたらと思います。。そのツールの特徴や問題点なども教えていただけたら幸いです。 また主要DB(Oracle、SQL Server、DB2、MySQL、PostgreSQL)を相互に移行できるマイグレーションツールみたいなのはありますでしょうか。

  • ファイルアップロードによるPostgreSQLのデータ更新について

    OSはRedhat7.2、webサーバとしてはapache1.3.26を使用しています。 現在PHP4とPostgreSQLを使用してのwebアプリを構築中ですが、データベースへのレコード追加のことで質問があります。 テキストファイルをアップロードしデータベースに流し込むという処理をPHPから行いたいのです。 PostgreSQLに用意されているCOPYコマンドを使おうと思っていたのですがどうやらこれはPHPからは使えないらしいのです。このコマンドはPostgreSQLのスーパーユーザのみ実効可能とのことですが、DB接続時のユーザをスーパーユーザにしてもだめでした。 現在は、 echo \\\copy テーブル名 from '/tmp/$uploadfile_name' | /usr/local/pgsql/bin/psql データベース名 という文をシステム関数を使用して流すことにより処理していますが、これだとwebサーバとデータベースサーバが同じマシンじゃないとだめです。 データベースサーバとwebサーバを別のマシンにして同じような処理をするには、テキストファイルの中身を1行ずつ変数に格納して、1行ずつinsert文を発行していくしかないのでしょうか?また、この方法だと処理時間はかなりかかるのでしょうか?ちなみにテキストデータの中身は大体200行前後で一番多いときで1000行ほどです。フィールド数は70ほどです。どなたかよい方法があれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLのデータファイルの位置について

    MySQLでテーブル、データベースを作成したのですが、 OS上から作成したテーブル・データベースが保存されているファイル(データファイル?) が見つけられません。 テーブルにデータをインサートしてコミットして、 セレクトを行ってデータは反映されていることは確認しています。 OSはWindows 7 MySQLのバージョンは5.5です。 user_dbというデータベースを作成し、 show databasesを行った結果、 information_schema mysql performance_schema test user_db が表示されることから、データベースuser_dbは正常に作られていると思います、 user_dbに対して、インサートは可能で、一度データベースを停止して、 再起動後、インサートしたデータがみれています。 しかし、インストールフォルダのMy.iniのdatadirで指定されているフォルダには mysql performance_schema のフォルダしかない状態です。(ここにuser_dbフォルダが作成されると思うのですが) どこにデータが保存されているのでしょうか?

    • ベストアンサー
    • MySQL
  • PostgreSQLをインストールしたサーバーとは別のサーバー上で、phpPgAdminを動かせる?

    PostgreSQLがインストールされているDBサーバにはPHPがインストールされていません。 よって他のWebサーバへphpPgAdminをインストールして、 DBサーバへ接続し、データベースの編集を行おうと考えています。 このようなことはphpPgAdminで可能でしょうか? ご回答よろしくお願いします。