/.Jに聞け:PostgreSQLとMySQL、それぞれの優位性は? 87
ストーリー by headless
質問 部門より
質問 部門より
あるAnonymous Coward 曰く、
フリーのデータベースとしてどちらも名高いPostgreSQLとMySQL。それぞれにはどのような優位性があるのか?という 質問がQA@ITにて投げかけられている。確かに複数のDBに対応するORマッパーが普及する現在、どちらを選択するかで迷うことも多いだろう。回答でほぼ完璧な答えが記載されているような気もするが、/.J読者の皆様はどう思う?
ちなみにタレコミ子はみんな使っているからという理由でMySQL派です。
SQLite3 派 (スコア:5, おもしろおかしい)
開発初期: とりあえず SQLite3 で作っておくかー。
開発終盤: このままでもいいんじゃね?
Re: (スコア:0)
普通にありそうだわ。
Re: (スコア:0)
そんな感じっすねー。
ブログ投稿とかだと、高々数キロバイトの粒度の荒いデータなので、スケールするB-TreeとHashがあればいいって感じ。
自分でファイルシステムに落とすとなると、ハッシュ分散させたり、FileLockを書くのが面倒なのでDB使ってますが、RDBMSである必要性があまり無いようなデータです。
KyotoCabinetに手を出そうかとも思ったのですが、そこまでパフォーマンス要求されるアプリでもないですし。。
最適な技術基盤の選択ができてなさそうと感じる不吉な質問 (スコア:5, すばらしい洞察)
データストアを使うことが MySQL か PostgreSQL か、古いタイプの選択肢にジャンプしてしまうのが嫌いです。クラウドが全盛の時代、自前でサーバーをセットアップして、しばらくするとパフォーマンス落ちるから、データベースのメンテナンスして、バックアップ作業のためのスクリプトを準備して・・・、みたいな作業をまだやるつもりですか?
ソフトウェアの実行環境を提供するクラウドサービスのデータストア機構や機能を比較検討したほうがいいんじゃないかと思います。そのクラウドサービスは MySQL を提供してるならそれを使うことになるでしょう。ORマッピングAPIを通してデータを扱うことが決められてるなら、そう書きましょう。
たぶん、リレーショナルデータベースを採用するということは、ユーザが非常に限られ、扱うデータも単純なものなのでありましょう。なら SQL を使うのもいいでしょう。しかし、ユーザーが膨大な数、ないしユーザーの増加数が予想できない場合には? NoSQL系統のデータストア、リレーショナルデータベースなんかじゃなくて、コントロールしやすいトランザクション機構の利用をおすすめします。
Re:最適な技術基盤の選択ができてなさそうと感じる不吉な質問 (スコア:3, すばらしい洞察)
常にインターネットにアクセス出来るシステムばかりではないですよね。
住基ネットとか銀行とか病院とか、クラウド上に置くのに抵抗がある情報もあります。
そういう意味で個別のデータベースの比較には意味があります。
視野が狭く、話がずれています。
Re: (スコア:0)
第1段落と第2段落は同意.
第3段落で上の評価をふっとばして「何言ってんだこいつ」のAAを探し始めるレベル.
Re:最適な技術基盤の選択ができてなさそうと感じる不吉な質問 (スコア:1)
「複雑な定義が必要ならRDBがいいだろ」
「設計時に定義できるってことは単純なデータってことだろ」
こういう不毛なすれ違い。
Re: (スコア:0)
なんか朝日新聞のコラムを読んでる気分になった
Re: (スコア:0)
よくやってくる、見当違いの営業を思い出しました。
いかに自社製品・サービスが素晴らしいかを延々と語り、こちらの要望・需要はガン無視というタイプです。
神託 (スコア:5, おもしろおかしい)
MySQLの優位な点
Oracleだ
PostgreSQLの優位な点
Oracleじゃない
Re:神託 (スコア:2)
PostgreSQLの優位じゃない点
いつOracleに取り込まれるか気が気じゃない。
どちらも怖いが・・・・・ (スコア:3)
PostgreSQL は、自己崩壊する危険性があるので怖い。
でも、PostgreSQL は、何とか自分でメンテナンスできそうなので、使っています。
もっとも、以前、--no-localte で initdb しないと文字化けする問題を直してやろうと解析して挫折しました。
以前は・・・ (スコア:2)
・とりあえずのスペックで、特にISAMあたりにしちゃうと、MySQLの方が早い。
・全部のアクセスをrootにすると楽だから、MySQLの方がいい(ケータイゲームの連中はこれが多いとか)。PostrgreSQLは、まじめにユーザ管理が入る(というか初期状態でとっつきづらい)。
・ある程度アクセスが増えてきて、マシンスペックを高くすると、MySQLは早めにサチる=スペックとDBの性能が比例しなくなる。PostgreSQLは結構リニアに延びていく。
自分が説明する場合に用いるネタですが、2009年前後の情報なので、変わっているかもしれません。PostgreSQL育ちなので、MySQLの方が弱いです。
先日Oracle for Linuxを触ったんですが、ユーザ/スキーマの考え方がPostgreSQLと全然違ってカルチャーショック。
-- gonta --
"May Macintosh be with you"
Re:以前は・・・ (スコア:2)
自分の遍歴がSQLServer2000→SQLServer2005→mysql 5.1 なんですが、mysqlのアカウント管理の細かさにちょっとビビったりしましたね。
テーブル単位でユーザとパスワードを定義できるとは思わなかった…。
システムごとに参照出来るテーブルは分けたほうが良い場合があるから、そういう管理をするときはありますよね。
パフォーマンスはInnoDBだとインデックスを使えるか使えないかで10倍、100倍の性能差が出てくるから一概に言えないのが難しい…。
でもmysql 5.1はSQLServer2000級の性能はあるような個人的な感じが。(パフォーマンス)
Re:以前は・・・ (スコア:2)
>テーブル単位でユーザとパスワードを定義できるとは思わなかった…。
カラム毎に権限設定出来ますよ。
Re: (スコア:0)
内容へのコメントではなく申し訳ないのですが、
全角半角の統一ぐらいしてくださいな。
Re:以前は・・・ (スコア:2)
ぐえ。半角で揃えたつもりだったんですが。
この目は節穴でした。
申し訳ありません。
Re:以前は・・・ (スコア:1)
つ java.text.Normalizer
Re: (スコア:0)
統一しただけじゃダメで、半角択一だろう。
Re: (スコア:0)
ゼンブハンカクダトサスガニヨミニクイダロ。
Re:以前は・・・ (スコア:1)
>・ある程度アクセスが増えてきて、マシンスペックを高くすると、MySQLは早めにサチる=スペックとDBの性能が比例しなくなる。PostgreSQLは結構リニアに延びていく。
これはMySQLを理解してない人が運用すると落ち入る穴ですねw
実際はMySQLの方がリニアに性能が上がってくるけど、毎度チューニングする必要あり。別に難しいチューニングでもないけどね。
ただMyISAMは性能が上がらないので、まずはInnoDBへ変更するのが先ですが
PostgreSQLは大量のアクセスがあるサイトだとどうしても・・・
Re: (スコア:0)
>・ある程度アクセスが増えてきて、マシンスペックを高くすると、MySQLは早めにサチる=スペックとDBの性能が比例しなくなる。PostgreSQLは結構リニアに延びていく。
これがすべてを物語っている気が
軽量システム:SQLite
そこそこのシステム:PostgreSQL
かなりのシステム:オラクル/DB2/MS SQL Server
アレ?
MySQLの入る場所がないwww
いつの間にこうなった? (スコア:2)
Re:いつの間にこうなった? (スコア:2)
石井達夫氏の貢献、及び日本語の扱いに比較的早期から対応したのが MySQL より先んじた最大の理由でしょうね。
http://gihyo.jp/lifestyle/feature/01/oss-interview/0002 [gihyo.jp]
日本以外では当初から現在まで MySQL 優勢のままと認識しています。
Re:いつの間にこうなった? (スコア:1)
自分の周りの雰囲気だと…
PostgreSQLのバキューム作業が超めんどくさい。
Oracleライセンスが改定されてCPU単位からコア数になって超高額に。
MySQLがレプリケーション対応になって、かなり良い感じだよ。
って感じの時代があって、ソーシャルアプリのお手本みたいなシステムが出て来て
一気に広がった気がしてます。
フリーという分類なら、MySQLが好き (スコア:1)
使い始めて10年以上になりますが、何の不自由もないのでMySQLを選んで使ってます。
私は有料サポートを受けないと無理といった、DBシステムを作ったことがないので参考にならないかもですが、ちょっとしたデータベースでいい場合なら、最初からMySQLを選んでいます。
インストール可能なOSも多いし、ODBCで接続したりでも難なく使えています。
Re:フリーという分類なら、MySQLが好き (スコア:1)
PostgreSQLでしょOracleフリーってことで
Re: (スコア:0)
好き嫌いで言って良いならPostgreSQLの方が好きだな。
理由は親コメントとほぼ一緒で、不自由ないし。
でも好みの話はここじゃ不毛だよね。
ライセンス (スコア:1)
MySQLは接続ライブラリがLGPLではなくてGPLとなるため完成したアプリ/システムにGPL汚染が発生する。
↑
実際にこれを理解していないでライセンス違反の使い方しているソフトハウスとか多そうだね。
でわざわざライセンスを買って利用するならMySQLの優位性は少なくなってくる。
Re:ライセンス (スコア:2)
GPL は「バイナリを配布する時にはソースが入手できる状態にしとけ」と言っているのであって、バイナリを配布せずにサーバ側に持っているだけであれば、ソースを公開する必要はありません。
Re:ライセンス (スコア:1)
> 「プロプライエタリアプリケーション」として公開したらGPL違反だろ。
元コメの主張は「MySQL Connector/ODBCを利用可能となる」というのがポイントでしょう。
利用するつもりはなくても利用可能になってる場合がありえます。
私の以前の/.jでの議論 [srad.jp]なのですが、
・PostgreSQL を想定したインタプリタプログラム
・ただし、汎用ドライバでDBアクセスするので、MySQL にアクセスさせる(GPLなライブラリとリンクさせて動作させる)ことも可能
といったプログラムを、スクリプトのみ単体で公開した場合でも、GPLにしなきゃ黒だろ、なんて言われましたよ…なんて無茶な…
この「GPLなライブラリとリンク可能であるから黒」なんて理屈…主張に従うなら、プロプラとして公開するアプリは、利用している全ライブラリについて、「同等なライブラリのGPLな実装が存在しない」ことを確認しろということであり、一つでもそういうライブラリが存在するなら黒、一つも存在しなければ白、だなんていう悪魔の証明が必要になってしまいます
本当にMySQL? (スコア:1)
MariaDB [mariadb.org]とかじゃなく?
# 個人的にはお客さんがIngres [actian.com]を使っていた影響もあってPostgreSQLをメインで使ってますが
MySQLはUTF-8が3バイト (スコア:1)
なので4バイトの文字が格納できねーって話があったんだけど、今調べたら5.5.3でようやく対応したのですね。
MySQLの"UTF-8"にご用心 [yanok.net]
GIS分野ではPostgreSQLに一日の長あり (スコア:1)
GIS分野では、MySQLよりも、PostgreSQL+PostGISの方が広く使われているという印象です。
仕様書のスペルミスの確率 (スコア:0)
PostgreSQL完敗。
略称
ポスグレ
マイエスキューエル
PostgreSQL完勝。
再帰クエリが (スコア:0)
MySQLが未だに再帰クエリに対応してくれないので、この二つならPostgreSQL。
ただ、SQL Server Expressでいいやってことも。
Re:再帰クエリが (スコア:3)
私の周辺でも情報システム(基幹系とか)で脱Oracleの話題はあり、まさにMySQL vs PostgreSQLになりそうだったんですが、
ピンからキリまでの人間で寄ってたかって作るシステムなんで癖の少なそうなPostgreSQLが優位。
他にはOracle社の動きが読めないのでMySQLは怖いなとか。
PostgreSQLをベースにしているというEnterpriseDBなんか興味があるんですけどね。
PostgreSQLの再帰クエリは住友電工情報が寄贈していますね。話によるとコスト削減でPostgreSQLを
使いたかったけど再帰クエリがないと使えないという事で実装してもらうことにしたとか。
http://itpro.nikkeibp.co.jp/article/COLUMN/20081106/318645/ [nikkeibp.co.jp]
ふむ。 (スコア:0)
自分も、SQL Server Expressに一票。次点でMySQLだな。
PostgreSQLは、SQL Serverと比べるといまいちメリット(プラットフォームくらいしか)が見い出せない。
用途次第としか… (スコア:0)
組込み用途でどっちか選べと言われても
どっちも使わない気がするけどな。
そりゃMySQLの圧勝でしょ (スコア:0)
国内/国外のレン鯖事情見たって圧倒的大差。そもそもPostgreSQLという選択肢が無い所がごまんとある。
それはもうレン鯖どころかCMSやBlog kit層にも蔓延していて、SixapartのアレですらPostgreSQLのサポート止めちゃったレベル。
もはや優位性云々の次元じゃないんだよね。選択肢自体が無いんだから。
そしてサポート料、これがまた……
ボラクルボラクルって言わてるOracleのMySQLプランと、SRAの同等プランで比較すると良い。
だいたいからしてPostgreSQLってのはGNU縛りが存在しないから、PostgreSQL PlusとかPowerGressとかやりたい放題、売りたい放題。
コミット? 何ソレ美味シイノ? おまえのものは俺のもの俺のものは俺のもの。これがPostgreSQLゴロの現実。
どうしてクローズドソースのDB郡と比較せずに、わざわざMySQLに絡みたがるのか……
何かっつーとMyISAM持ち出すしよ、どうしてAriaと比較しないんだ?
InnoDBとの比較も意味不明。PBXTと比較しろ。
本当に気持ち悪い連中だわ。
# つーか、PostgreSQLがどの国で一番使われてるのか調べろよ。ガラパゴスDBってレベルじゃねーぞ。
PostgreSQL market share? (スコア:5, 参考になる)
実際のところどうなのか気になったので調べてみました。
Software Stack Market Share: July 2012
http://blog.jelastic.com/2012/07/23/software-stack-market-share-july-2012-2/ [jelastic.com]
日本ではMySQLが一番人気みたいですよ。そして、PostgreSQLのシェアが他の地域よりも圧倒的に少ないように見えます。これでは「PostgreSQLを*使わない*なんて、ガラパゴス化してんじゃねーよ」と言わないといけませんね。
逆に、他の地域よりも人気なのはMongoDBですね。
他の会社の統計もあれば教えて下さい。
時代は変わったねえ (スコア:0)
昔は圧倒的に海外MySQL、国内PostgreSQLだったんですが。
MySQLがOracleに取得されたことで
海外=やばい、他の選択肢を探さないと!=他のDBが伸びる
日本=Oracle様なら安心だな!=MySQLが伸びる
って動きになったんでしょうか。#にしてはMariaのシェアが謎
Re: (スコア:0)
!= が、関係演算にみえた...
Re: (スコア:0)
Linux機にDAViCalを入れたらPostgreSQLを使ってて、
昔ならこういう場合MySQLだったよなぁと思いました。
Re: (スコア:0)
それではMySQLの「世界でもっとも普及している、オープン ソース データベース」というキャッチコピーは違法ですね。
Re:そりゃMySQLの圧勝でしょ (スコア:1)
こいつ絶対「Heroku潰れろ」って思ってるな
Re:そりゃMySQLの圧勝でしょ (スコア:1)
>それはもうレン鯖どころかCMSやBlog kit層にも蔓延していて
そのオープンソースのCMS系がGPLばかりでBSDライセンスとか無いのは、
結局MySQLの接続ライブラリがGPLのためにどうしてもGPLになってしまうと言う負の連鎖に陥っていますね。
(接続ライブラリに関しては接続されるシステムが既定のオープンソースに限って除外規定が使えるけど)
>PostgreSQLってのはGNU縛りが存在しないから、PostgreSQL PlusとかPowerGressとかやりたい放題、売りたい放題。
そのおかげでPostgreSQLで作ったシステムは商用転用しやすいですね。
MySQLは本体も接続ライブラリもGPL、そのせいでパッケージとして売るシステムを作りにくい。
パッケージとして売るシステムと考えた場合、MySQLのコマーシャルライセンスの価格を上乗せになるから実際にはお財布には優しくない
クソ仕様ライセンス。
接続ライブラリがLGPLだったらよかったのにwwww
優意性はない (スコア:0)
私はOracle XEかSQL Server Expressで悩むぐらいだな
ORマッパー? (スコア:0)
>複数のDBに対応するORマッパーが普及する現在
ORマッパーを利用して事足りるプロジェクトなら、どれでもよいのでは。
原付で、エンジン切ってペダルを漕いで進む、みたいな状態で済む距離なら、
エンジンやサスペンション性能の違いは、大して気にならない。
Re:CLIが使いやすさでは (スコア:2)
pg_ のプレフィックスを持つシステムカタログを知った上での発言なのでしょうか?
http://www.postgresql.jp/document/9.0/html/catalogs.html [postgresql.jp]