- ベストアンサー
MySQLとPostgleSQL、どちらがいいのでしょう?
これからPHPを使ったデータベースを勉強したいと思いますが、MySQLというのとPostgleSQLというのがあるのがわかったのですが、どっちを学ぶのがいいのでしょうか?(それぞれ長所短所があり単純には比べられないのかと思いますが・・・) ちなみにWindows2000とXPを利用しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
最初に言っておきますが、僕は熱烈MySQLファンです(^^; PostgreSQLは日本で特に人気がありますが、海外では MySQLの方がかなりメジャーです。LAMPという言葉が あるくらいですし(Linux+Apache+MySQL+PHP)。 MySQLは世界標準のDBMSといっても過言ではないです。 ベンチマークではMySQLはPostgreSQLの6倍以上高速です。 (郵便番号によるinsert,update,selectの平均)。 トランザクションについてはMySQLでも、もちろんOKです。 PostgreSQLはトランザクション対応ですが、この実装が WALという仕組みでレコードを削除しても実際には 消さないので、データが増えなくても追加削除を繰り返す とどんどん馬鹿でかくなります。仕方がないのでPostgre SQLではデータの処理以外に毎日バキュームという作業 が発生するのでマジ面倒くさいです。 サブクエリーはMySQLにはありません。MySQLでは 複数回のクエリに分けるのが普通です。処理が重たく なってしまうからです。 PostgreSQLはWindowsではまだ動きません。もうすぐ 動くみたいですけど。PowergreSQLとかいう商用ソフト だとWindowsでも動くみたいです。MySQLはWindowsは 標準サポートです。 実際Windowsであれば、無料で使えるDBの選択肢は MySQLかFirebirdしかないと思います。 (CygwinとかMinGWは除く)
その他の回答 (4)
- ryu_d
- ベストアンサー率58% (33/56)
結局のところ適材適所ではないでしょうか データの参照が多い物はMySQLそうでなければPostgreSQLという形でしょうか? SELECTのみで見た場合のMySQLは至極高速です。 つまり、ユーザ認証やオンラインショッピング等の商品リストの表示などは私の知る限りフリーではMySQLは最速でしょう。比べるまでも無いほどに。でもトランザクション処理は一昔前存在していませんでした。 つまり、更新系は最初念頭に無かったわけです。 しかしながら、Oracleなどの商用RDBMSと比較した場合、どちらもまだまだの感は否めないと個人的には思っています。目的が違ったりするのでMySQLとOracleを比べる必要も無いと思いますが。 また、PostgreSQLは標準SQLをサポートしてますし実装がOracleにちょっとだけ近い事もあり、業務系で安くといった場合よく使われます。Oracleから乗換えをしている会社もちらほら出てきています。もっとも最近の流行はDB2なんでしょうが。 他の方がおっしゃっているバキュームの作業もちょっと前はDBをとめて行わなければなりませんでしたが今は違っていますし、UNIX上ならばCRONつかえばいいという話もあります。 RDBMSの味噌は1つのSQL文でかなり多くの事がコンパイラ依存なく出来るところです。プログラムを使えば別に集計でもなんでも出来ますが特にお金を扱う上では桁数の問題、浮動小数点数の問題があります。 まあどちらも出来るんですけど。副問い合わせを使いたかったり、更新系がおおいとPostgreSQLに走ってしまいます。業務では速度もさることながらデータの整合性が最優先ですので。 まあ、どちらも使いますが、案件で見るとPostgreSQLがおおいです。 これは仕事内容に依存しているからかもしれませんが。 商用系も勉強したいのであれば両方使ってみる事をお勧めします。
- root139
- ベストアンサー率60% (488/809)
よく言われるのが、下記の様なところだと思います。 MySQL: 高速だが、機能が少ない PostgreSQL: 多機能であるが、速度が遅い(MySQLよりは) 実際に使ってみた感じでは、MySQLはviewや副問い合わせやトランザクション機能が使えなかったのは不便でした。(ver3.23) 性能面(速度)においては比較する様な経験がありませんので、分かりません。 データベースの勉強ということでしたら、どちらかといえば機能的に充実しているPostgreSQLが良いように思います。 両方とももともとUnix系のOSのアプリケーションですが、Cygwinの利用などでWindows系のOSでも動作するようです。
- seltzer
- ベストアンサー率29% (71/238)
Postgreは、Windows版は無料ではなくてパッケージソフトです。MySQLなら、Winも Linuxも無料で使うことができるので手軽です。 その分、Postgreは高機能なので余裕があれば Postgre、手軽に始めたいなら MySQLかな。私は MySQLをおすすめします!
- MovingWalk
- ベストアンサー率43% (2233/5098)
RDBMSとしてはPostgreSQLの方が高機能です。 MySQLは低機能な分、軽いのでWebには向いているかもしれません。 http://japan.internet.com/linuxtutorial/20001216/1.html