パスワードを忘れた? アカウント作成
11973172 story
データベース

MySQL/MariaDBではなくPostgreSQLを選ぶ理由 56

ストーリー by headless
比較 部門より
本家/.「Why I Choose PostgreSQL Over MySQL/MariaDB

過去10年、開発者や技術者はMySQLとPostgreSQLを比較し、後者が技術的には優れていると考える人が多かった。PostgreSQLの支持者は、そのANSI標準サポートやACID準拠がMySQLのスピードに勝ると主張する。しかし、すべてのLinux Webホスティングパッケージに含まれることから、非常に多くのWeb開発者がMySQLを使い続けている。Diceの記事では、開発者のDavid Bolton氏がMySQL/MariaDB 5.7.6(2015年3月9日、コミュニティーにリリース)とPostgreSQL 9.4.1を比較し、サブクエリやJSONサポート、ライセンス、データの完全性といった点で現在もPostgreSQLの優位性は変わらないとみる。10年以上にわたって両方のデータベースを使用しているというBolton氏は、MySQLにも改善はみられるものの、PostgreSQLを支持するとの結論に達している。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2015年03月22日 17時45分 (#2782589)

    MySQLは再帰クエリ使えないから入れ子構造の、例えば製造物-部品管理なんかと相性が悪い。
    使うかどうかはケースバイケースだけど、MySQLに決定的アドヴァンテージがない以上、両方を学習するコストをかける意味がない。

  • Firebird (スコア:3, 興味深い)

    by Anonymous Coward on 2015年03月23日 10時35分 (#2782827)

    Firebirdは知名度の低さだけを除けば結構扱いやすい良いRDBMSだと思うんだよね。
    小難しいコンフィギュレーションいらずだし、Windowsで使いやすいし、基本は1DBが1ファイルで分かりやすいし
    アプリ同梱にするための埋め込み版もあるし、PHPのPDOドライバが腐っている以外は各言語用のライブラリも一通りそろってるし
    Interbaseから数えれば歴史も実績もそこそこ豊富だし、ライセンスに気を使う必要もないし

    何で使われないんだろう?

    • by Anonymous Coward on 2015年03月23日 11時28分 (#2782845)

      オープンソース化された時から名称問題の時期くらいまでは、性能・機能的にパッとしなかったからではないですかね。
      現在はかなり良くなっていると思います。

      親コメント
    • by lm (47129) on 2015年03月24日 8時04分 (#2783403) 日記

      DB オープン中に異常終了するとデータファイルに不整合がおきて復旧できなくなる、という体験を何度かしているので
      高性能だが使いどころが難しいというイメージ。

      親コメント
    • by Anonymous Coward

      SQL文知らなくてもクエリ作れるデザイナを初期の頃から持ってたところ。
      ODBC使えば他DBにたいしても同じように操作できる汎用性。

      SQL文全部手打ちはめんどくさいし、一般人に勧められん。。

    • by Anonymous Coward

      とある商用ソフト買ったら、Firebird必須で驚いた。しかも自分で入れろという…

  • by Anonymous Coward on 2015年03月22日 17時53分 (#2782592)

    やってられんだろ、そんなの。以上。

  • by Anonymous Coward on 2015年03月22日 20時43分 (#2782671)

    Webで使うとなれば、そんなに難しいSQLも必要ないし、機能よりも軽くて使い易いもので十分なんだよね。

    あとアクセスが多い場合、特に同時アクセスが多い場合は
    MySQLのスレッドの方が性能が落ちにくいってのもあったかな。

    マスター/スレーブ構成が標準でできてたってのもあるけど、
    規模が大きくなるほど、安定性(実績)を重視するようになるので、昔から使われているMySQLを選ぶことが多いかな。

    • by Anonymous Coward

      >規模が大きくなるほど、安定性(実績)を重視するようになるので、昔から使われているMySQLを選ぶことが多いかな。
      それは「タレコミの主張は間違っている。安定性でもMySQLが優れている」という主張ですか?

      • by Anonymous Coward on 2015年03月23日 1時14分 (#2782760)

        別ACだけど、元記事は読んでないけどタレコミ本文には安定性は書いて無くね?

        それにDBが1台だけならともかく、複数台でレプリケーションするとなると安定性…実績はMySQLの方が全然上でしょ。
        だって、PostgreSQLにその機能入ったの2010年 [atmarkit.co.jp]だよ。ネット上見る限り、MySQLは遅くとも2004年 [nikkeibp.co.jp]には実装済みなのに。

        親コメント
      • by Anonymous Coward

        使用者が非常に多いと言っているのだから、安定性(実績)で優れているのはタレこみ主も認めるところでは?

        • by Anonymous Coward

          >すべてのLinux Webホスティングパッケージに含まれることから、非常に多くのWeb開発者がMySQLを使い続けている。
          例えば、昔から惰性でWindowsは使われているが、それは安定しているからなの?

          ACID準拠
          データの完全性
          こいつらは安定の指標だと思ったんだか、どうやらいつの間にかシェアが安定をあらわす指標になったんだね。
          寄らば大樹の陰。確かに親方安定してるわ。

  • by Anonymous Coward on 2015年03月23日 7時55分 (#2782792)

    MySQLとpostgresqlなら無料で商用利用できるpostgresql一択
    ってか、MySQLの勉強会でライセンス管理どうしてるんですか?って聞いてろくな回答返ってきたことないんだが・・・・

    • by Anonymous Coward

      別に使えるんやないの?
      http://anond.hatelabo.jp/20140722001658 [hatelabo.jp]

      顧客、従業員と個別に契約がある状態で、現実的にライセンスが障害になる状況ってありえるのでしょうか?
      ライセンスは契約を上書きできる概念ではないです。

      • by Anonymous Coward

        自社プロダクトをとして販売する場合GPLでは困ります
        GPLで問題無い場合もあるでしょうが、問題なるケースもあるわけです

        そんなんでMariaDBがO社からforkしてくれて良かった
        O社で飼い殺されて消えていくにはあまりに惜しい

    • by Anonymous Coward

      mariadb 使えばいいよ。 LGPL 時代のライブラリを元に最新のmysql プロトコルに対応してる。

    • by Anonymous Coward

      MySQLへの操作はport経由、MySQL自体のライセンスは、ネットワーク上のサーバーのライセンスと同じ扱いじゃ。

      • by Anonymous Coward

        今のライセンスだとクライアントライブラリのlibmysqlがGPLかコマーシャルライセンスかオープンソース例外の三択。

        プロプライエタリの製品に組み込むなら商用ライセンスを買うか、プロトコルから独自ライブラリを作る必要がある。

        でも、一時はプロトコルもGPLだから独自実装のライブラリを使っていても金よこせと言ってた。
        法的には無効そうでもおかしな言いがかりをつけてくる可能性があった時代は避けといた方が無難だった

        • by Anonymous Coward

          法的には無効そうでもおかしな言いがかりをつけてくる可能性が前提であるなら
          GPL以外でも危険性は同じですよね

  • by Anonymous Coward on 2015年03月22日 17時57分 (#2782595)

    昔のPostgreSQLは定期的なバキューム作業が必要だったので、今でも印象が悪いかも。

    #どうでもいいかも知れないけど、タレコミ文にPostgre's'SQLが混在していて気持ち悪い

    • by Anonymous Coward on 2015年03月23日 0時13分 (#2782747)

      今のPostgreSQLは基本的には不要ですしね
      私はISO標準のSQLを覚えてたのでそのあたり忠実なPostgreSQLのほうが好きです

      親コメント
    • by Anonymous Coward

      sqlite3とかもvacuum必要なんだけど、iosの裏にこいつがいる
      自前でFMDB使うとvacuumしたくてたまらんのだが、ios上でvacuumすると三〇分くらい帰ってこない。(core dataでもsqlite3使ってるけどそこは隠蔽されてる)
      この手のライブラリの裏にひそんでディスク(携帯デバイスは余裕が無い)食う物ってどうすりゃいいんだろ?

      vacuum必須でもPostgresqlは好きだったりする。(mysqlはISAMの頃の悪夢があるのよー)

  • by Anonymous Coward on 2015年03月22日 18時36分 (#2782613)

    mysqlって、何も考えずに使ってると大文字小文字区別しないんよね。
    照合順とかの概念知ってたはずなのに油断しちゃって、微妙なバグ作り込んじゃったわ。
    postglesqlならデフォで区別するモードだし、いつも使ってるってのもあって
    もうこの手に馴染んでるし、好き。

    • by Egtra (38265) on 2015年03月22日 21時28分 (#2782695)

      そういえば、最近Ruby on Railsではあれこれ区別しない照合順序utf8_unicode_ciがデフォルトにされててさあ大変なんて話がありました: utf8_unicode_ci に対する日本の開発者の見解 - かみぽわーる [kamipo.net]。もちろん、問題なのはこんなのを持っているMySQLではなく、デフォルトにしようとしているRailsのほうですが。

      #でも仕事でも趣味でもMySQL使っています。PostgreSQL使ったことありません。ごめんなさい。

      親コメント
    • 仕事で、MySQL、PostgreSQL、Oracle を扱ってますが、基本的にはお好みでって感じですね。
      「○○を使え」と言われればそれを使いますが、普段はできるだけDBMSに依存しないコードを書くよう努力しています。

      強いて言えば「※個人の感想です」と断った上で、
      PostgreSQLは、まず機能の安定性が優先で、性能向上などは二の次
      MySQLは、まず性能向上とか野心的な取り組みに熱心で、機能の安定性が二の次
      といった印象があります。

      #つい最近AUTO_IS_NOT_NULL [livedoor.jp]の罠にはまったので、若干MySQLに恨み節があるかも…

      親コメント
      • by Anonymous Coward

        OracleユーザーはPL/SQLを結構ヘビーに使ってるとこが多いから、他のDBに移行しにくいんだよね。

    • by Anonymous Coward

      自分もpostglesqlのが好き。仕事で両方触ったことあるけど、mysqlはなんか癖がすごい強いように感じる。独自構文とか型とかトランザクションとか。postglesqlの方が、標準に近いイメージ。
      (仕事で最初に触ったのがOracleだからそう感じるだけかもしれんけど。)

      ただ、mysqlの方が参照用DB追加したりとか、大規模な(かつOracleを使うほど金かけられない用途に)強いイメージはある。
      最近はpostglesqlもこなれてきたのかもしれんけど。
      だからWebアプリとかでアクセス数増えそうならmysqlかな?って思っちゃう。

      • by Anonymous Coward

        俺も大体そのイメージだな。
        ただ、それって10年位前のイメージで、今はどちらも肥大化しててどっちもどっちって感はある。

        システム屋として見るといろいろ悩むんだけど、
        Web屋としては、MySQLにしとけばレンタルサーバー選びで悩まなくて済むってのが今となっては一番大きい。

      • by Anonymous Coward

        識別子のうちテーブル名だけはケース・センシティブで、
        その理由がファイルと 1:1 だからってのが('A`)って感じ。
        初期は仕方ないにしてもまだそこ抽象化されてないの? って。

        でも実績で大差なもんだから余程自身が無いと PostgreSQL 選ぶのは難しい。

        • by Anonymous Coward

          それの弊害って、OS依存するんだよね。
          MySQLの方がWindowsに正式対応したのもずっと早かったのに、今も引きずってる。

  • by Anonymous Coward on 2015年03月22日 19時43分 (#2782645)

    初期のMySQLって半角カナ使えなかったんだよね。
    使えるようにするパッチは有ったけど、うかつにアップデート出来なくなるんで使えなかった
    で、一旦慣れちゃうと容易に他に変えられなくなる
    そんな訳でずっとpsqlです

    • by Anonymous Coward

      psqlって見るとPSQL(Pervasive SQL、Btrieve)にしか見えない

  • by Anonymous Coward on 2015年03月23日 1時44分 (#2782764)

    いまだにPHPを使う理由ってやつ

  • by Anonymous Coward on 2015年03月23日 14時45分 (#2782984)

    大抵のウェブアプリではそんなに高度な問い合わせ自体をしないのでどちらでも支障はない。
    が、CUIのmysqlクライアントがctrl+cで落ちるのが許せないので選べる時はpostgresを選択してる。

typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...