MySQL vs PostgreSQL Part2
■ このスレッドは過去ログ倉庫に格納されています
同じオープンソースRDBMSとしてのMySQLとPostgreSQLを語ろう。
どちらが良い・悪いの宗教論争ではなく、漏れたちユーザにとってのそれぞれの使い所を見出そう。
前スレ
MySQL vs PostgreSQL
http://pc8.2ch.net/test/read.cgi/db/1056943680/l50
>>588
どう読んでも、そんな結論にならないだろ。
MYSQLを使用したソフトウェアを引き渡す場合、(形態を問わず)
GPL(ソフトウェアのソースを公開)にして下さい。
GPLにしない場合、コマーシャルライセンスを買ってください。
だろ。
「頒布しないかぎりライセンス料は発生しない」
ってどこを読んだんだよ。 >>591
MySQLは、自分自身もGPLだけど、使うソフト(WEBサイト)もGPLであることを求めている。
GPLの規約自体は、この際あまり関係ない。
ものすごくわかりにくいけど、ここの2番目の章。
http://www-jp.mysql.com/about/legal/licensing/faq.html
要約すると、
「MySQLはオープンソースを推進しているので、オープンソースのソフトからMySQLを使用しても金を取りません。」
1番目の章でも、良く読めば、
「MySQL 製品を使用」する場合、使用するアプリケーション(WEBサイト含む)はGPLにして下さい。
そうしない場合、商用ライセンスを購入してください。 」
ってあいまいに書いている。 >>590
これは流石に酷い・・。中国並みのライセンス意識だわ・・。
MySQLというソフトを使用するなら、日本だと、MySQLの販売代理店に金を払う。
「mysql 購入」でググれば、代理店いっぱい出てくる。
頒布しなくても、windowsを使用する場合、windowsのライセンスは買うだろ。
まあ、お前は海賊版使ってるのかもしれないけどさ。 >>591
使うソフト(WEBサイト)を自社のみで使う(NDAなどで委託先に開発させたものを含む)場合には、
利用者(自社)がソースコードなどをGPLに基づいて利用できる状態にあればよいわけで
GPLを尊守しているかぎり、第三者にバイナリを提供していないにもかかわらずソースコードを開示する義務はなくて、
従って、バイナリやソースコードを第三者に頒布しなくとも(GPLを尊守しているかぎり)、
商用ライセンスを購入する必要はないと読める >>593
MySQLを自分で使用するだけなら金を払う必要ないよ。
RHELやCentOSにMySQLの価格は含まれていないでしょう。
もし金を払う必要があったら本屋で売ってる
CentOSのDVD-ROM付きガイド本が20万円以上することになる
買うのはサポートが欲しいときと、GPLを外したいとき >>595
ぽかーん
CentOSにMySQL入ってないだろ。
MySQLのダウンロードは無料。
使用するなら、使用するソフトをGPLで公開する。
じゃなきゃ、金を払う。
MySQLは営利企業が開発して、販売してるソフトだぞ。
ただ、使うソフトをGPLで公開すれば、無料で使えますってだけ。 >>597
入ってるのか。
いつも最小インストールだから、知らなかった。 CentOSはGPL。ここポイントな。
「第三者にバイナリを提供していないにもかかわらず」は、
内部の社員からの流出はライセンス的には止められない可能性がある。
なんにせよ、GPL汚染が怖いならフリー版のMySQLは候補にはならないよ。 >>596
GPLには公開する義務なんてないよ。何言ってんだ? >>599
内部の社員からの流出は、プログラムがGPLかどうかとは関係がない
GPLソフトウェアの扱いにも守秘義務が課せられるということは、
GPLでないソフトウェアと何ら違いはない
GPLの条項が理解できない場合や受け入れなれない場合は、
フリー版のMySQLは利用できない MySQLのライセンスのポイントは2つ。
1)MySQL自体の改変についてはGPLに従う。
2)MySQLを使用して開発した成果物(ソフトウェア・WEBサイトなど)もGPLに従う。
で、1)と2)は基本的に関係の無いライセンス規定で、
金銭的に問題になるのは2)。
1)のMySQL改変なんてやる人は滅多にいないけど、この規定のせいで
「MySQL自体を改変しなけりゃ、使って大丈夫」っていうデマが流れるようになった。
日本の(貧乏)企業の半数がPostgreSQLを使用しているのは、
2)の規定を読んでMySQLの使用を避けたか、MySQL販売代理店に確認したためと思われる。 >2)MySQLを使用して開発した成果物(ソフトウェア・WEBサイトなど)もGPLに従う。
って事は、MySQLを利用したWebサイトを作成してサイトを公開しただけなら、そのサイトを構成するcgi等を公開する必要は無いって事? >>604
レスさんくす。
やっぱ、そうなるよね。 >>604
604のリンク先を読むと、無条件で公開しなくていいわけではないようだが。
公にするならソースコードを公開しろという事だから、WEBサイトにつかうなら公開する
必要があるだろう。エクストラネットで内部だけで使うならともかく。
ここでいう「公にする」ってのはソフトウェアを頒布するということ。
Webでサービスを提供するのは当てはまらない。
無条件で公開しなくてよいわけではもちろんないが、GPLソフトウェアの
派生物を頒布する場合はその改変されたソースコードも提供しなければ
ならないといっているだけに過ぎない。 >>606
>WEBサイトにつかうなら公開する必要があるだろう。エクストラネットで内部だけで使うならともかく。
GPLが直接対象としている公開先は、バイナリの保持者であって、
GPLソフトウェアで作られているWEBサイトにアクセスする人に対しては、GPLソフトウェアを公開する必要はない。
GPLとは別に、Webアプリケーションの利用者に対してもソースコードを利用する権利を認めようとする、Affero General Public License (AGPL)というものがある。 うわっ AGPLなんて物もあるのか。こりゃ徹底してるな。 >>602
MySQLは当時サブクエリも使えなかったからな。
PostgreSQLに流れたのは当然。 >>606
それを要求するのはAGPLであってGPLじゃない。 >>610
今でもまともにJOINもできないけどね > MySQL MySQLはオワコン
ttp://slashdot.jp/apple/11/08/04/0816215.shtml レンタルサーバのDBがほとんどMySQLばっかりだからなあ
半々ぐらいになってくればPostgresも利用するんだがねぇ。
なんでMySQLばっかなんだろ。ただ単に他の業者がMySQLだからうちもって感じなのかな。 ちょっと前のPHPの標準扱いだったからじゃないかなあ 今は格安VPSあるからそれ使うのが主流になるんじゃね うちのPC管理者が
「社内イントラネットで使うデータベース(外部には非公開)であっても
業務で使うなら、MySQLは商用ライセンスが必要。
だからPostgreSQLじゃなきゃだめ」
って言い張っているんですが、純粋に自分らで作って自分らだけで使うんなら
商用ライセンスなんて要らないですよね?
サポート欲しけりゃライセンス買え。
MySQL使ったシステムを配布するならライセンス買うか、GPLに従って求められればソース出せ。
配布もしないし、サポートも要らないなら好きにしろ。
じゃないの? >>618
>商用ライセンスなんて要らないですよね?
要らないと思うけど問い合わせてみれば? >>620
問い合わせると「サポート無しでは云々」とか言われそうで。
うちのPC管理者ってマジで紙テープも使っていたCOBOL爺なんだが
(昔はパッチを当てるというのは、こうやって紙テープのアナをふさいだりアナを手であけたり
したもんだ、と実演してくれたw)
PHPとかもやっているくせに、どうも一度信じきったこと(MySQLを業務で使うには商用ライセンスが必要)
はナカナカ考えを変えそうにないんでねー。
>>621
具体的に何を言われたかは知らないけど、
たとえライセンス条項の文言に違反はしてなくても、
ライセンス元の権利者が商用ライセンスを買わないと使わせないというのなら、
従うべきのような気もする その使い方なら商用ライセンスはいらないが、
「2ちゃんに書いてありました」って言ったところで信じないだろう >>622
GPLの場合に限れば、オリジナルの権利者以外もサブライセンスできるから
実質ライセンス条項の文言がすべてだな。
ただ、ライセンスの話とサポートは別だが。 >>621
PostgreSQLでなにが悪いんだ。最近はこちらの方が昇り龍。 >>625
PostgresをVistaHomeに入れようとしたらハマったでござるの巻。
>>628
クソなPHPつかうところはちゃんと妥協できてんのに、
ほかで融通利かない点がカスなんだとおもう。 >>629
PHPは
print(”残高は$zandaka円です”);
っていう記述が出来るので好き。あと変数に$をつけるので
うっかり予約語と被らないところとかが好き。
言語体型がCと似ているので好き。
うちの近所の図書館には
PostgreSQLがキーワードな本が1冊も無い。
MySQLなら8冊ある
俺は絶対に
print ”残高は” . $zandaka . ”円です”;
と書くな
もしくは
printf(”残高は%d円です”, $zandaka);
元Javaプログラマだからってのもあるだろうが >>630
PHPが糞ってかプログラマが糞なのがよくわかるな >>632
print ”残高は” . $zandaka . ”円です”;
↑
これ、PHP3だと記述できないんだっけ?
(カッコでくくる必要がある) 全文検索をやってる人いますか?
検索結果の表示順序を決めるものとしてPostgreでは相関値rankがありますが
MySQLでは類似値が無いようなので、その面ではPostgresがよいかなと。 MySQLほどレスポンス求められないなら分析関数使えるPgかな。 最近レプリケーションも出来るように成ったとのことで、ポスグレに鞍替えしようかと思っているのですが、sqlでどこら辺がちがうなど、代表的なモノを幾つかお教えいただきたいのですが… 標準ではダメだけどMySQLではOKな緩いやつが蹴られるかな
GROUP BY 周りとか。 なるほど、group はMySQLはゆるいんですね。
ありがとうございます。
一応SQLの本を読みつつMySQLを覚えたのですが、ひょっとしてゆるいSQLで記載してるかもなので、見直してみます MySQLは、一回のselectで一つのテーブルに関して使われるインデックスは
一つだけという上限があるみたいなんですが、ポスグレはどんなでしょ? >>641
PostgreSQLにはそういう制限はない。 ども >>642
ということは、2つ以上のインデックスが活きるような検索なら、
MySQLよりかなり速いってことも有り得そうですね。 >>643
容量節約できるくらいじゃない?
適切なインデックスを張る前提だけど、そこは横着しないでしょ。ふつう。 一度のテーブルスキャンするのに使われるindexはどのDBMSでも
高々1つだと思うんだが、>>641の制限ってどういう状況?
1クエリ内で同じテーブルを複数回スキャンする場合に1つの
同じindexしか使われないということなのか、あるいはそもそも
1クエリ内のindex scanはテーブル毎に1回ずつしか使われないと
いうことなのか。 こんなスレがあったとは。
つかぬことをうかがいますが、MySQLとPostgreSQLでは、どちらがより省メモリでしょうか。
速いのはMySQLだそうですが、速さよりもメモリ消費量の少なさに興味があります。
「条件次第」といわれればそれまでですが、こんなときはMySQL or PostgreSQLのほうが省メモリだよー、というのを教えてください。 RDBMSにおけるメモリ使用量のほとんどはデータのキャッシュ領域なので
(PostgreSQLでshared_buffers、MySQLでinnodb_buffer_pool_size)、
そこを少なく設定すれば省メモリになる。もちろんその分性能は下がる。
そこを同じ設定にしたと仮定すると、
PostgreSQLはマルチプロセスアーキテクチャ、
MySQLはマルチスレッドアーキテクチャなので、
データベースへの接続数が多い場合はMySQLの方がメモリ使用量は少ない。
>>632
php的には
?>残高は<?=$zandaka?>円です<?
だろ。ちがうかw SELECT 〜 limit 100 とかした場合でも、条件に合う総件数を知りたい場合、
MySQLだとSELECT SQL_CALC_FOUND_ROWS 〜 とかやれば出来るんですけど、
PostgreSQLの場合はどうしたらいいんでしょ? SELECT count(*) OVER() ... LIMIT 100 overなる語も加えてぐぐってみました。
成程、ウインドウ関数とかいうものを使うのですね。
MySQLくらいしか知らなかった者では目が向かない部分でした。
ありがとうございました。 >>649
ポスグレのshared_buffersについて根本的に勘違いしてね?
shared_buffersは共有メモリとして1つだけ確保、クライアントと接続するバックエンドプロセスは
その共有メモリにアクセスするんだよ。MySQLのInnoDBと同じ。
バックエンドプロセス間の排他制御は様々な工夫がこらされて、パフォーマンスはとてつもなく向上してる。
ベンチマークはいろいろ公開されてるから調べるとよろし。
ポスグレのバージョンが古いけどそれでもMySQLより速いことが多いはず。
今ならもっと速い。MySQLもパフォーマンス向上してるけどさ。
・メモリをたくさん設定するとディスクI/Oが減るので速い
・最近のバージョンではshared_bufferへのアクセス排他制御が良くなっているので速い
という二つの話題が混ざっているんだな MySQL使うメリットってクラスタ組める以外に何かある? 千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一
千歳科学技術大学 グローバルシステムデザイン学科 深町 賢一 語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~
語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~語気光線( ´Д`)y━・~~ それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか!
それよりゴキブリ高専卒どもはワシにさっさと謝罪せんか! 私が千歳科学技術大学 グローバルシステムデザイン学科 専任講師・理学博士:深町 賢一だが何か?
用があるなら、http://www.chitose.ac.jp/course/teacher/glo/000057.html mysqlがoracleに買われたことで
ライセンスが変わって、
自社のパッケージに使ってた場合とか面倒なんでだんだんpostgresへの移行が進んでるね
oracleは囲い込んだつもりだったんだろうが、
金払ったりベンダーに囲われたりするのが嫌なユーザが使ってるんだからそら逃げるわな
嫌われ者のoracle ライセンス変わったっけ?
特に誰も騒がなかったような。 Postgresってトランザクション中にPQprepareできないんだね
地味に不便
木階層構造がメインになるようなデータベースの場合には、
一般的に、WITH RECURSIVEのあるPostgreSQLが選ばれているのでしょうか? 本当に木構造なら、自分は Nested Set Model 使う。
もちろん PostgreSQL で。 >>679
ありがとうございます。
アートオブSQLの(たしか)pp.163のあたりに、
Celkoの階層構造は遅くて話にならない的なことが書かれていた記憶があるのですが、大丈夫ですかね?
それとPostgreSQLを選ぶ理由は、こういう用途にMySQLは向かないからですか? データ自体の更新頻度や参照頻度や偏り等で、適切なアルゴリズムは変わってくるんじゃね
どういう用途を想定してるの >>681
複雑な配線図のような構造を想定しています。
参照時には、指定したポイントの周辺の4親等くらいを取得、必要に応じてさらに展開表示といった形で。
おそらく更新:参照=1:9くらいで、周辺のリンクの展開にDBを特化したいです。
そうするとNested Set Modelでleftとrightを設定してMySQL上で動かすよりも、
PostgreSQLでWITH RECURSIVEを使って親子番号を展開するほうが、もしかすると圧倒的に速いのではないかと。
#正直、自分が扱いに慣れてきたfuelPHPの正式対応がMySQLなので、できればMySQLを使いたいのですが。 WITH RECURSIVEは記述が簡単ってだけで、ぜんぜん速くなりそうもないが。 >>683
再帰的with文はDB構造の問題でもあるので、
対応してあるDBならそれなりに最適化してあると思います そもそも速くなる構造じゃない。最適化といってもたかが知れてる。 MySQLは使いやすいし、.NETサポートもあるんだけど、スキーマが使えないのがねー
脱Accessの次には良いんだけど、スキーマがないとつらいよねー >>686
どういった意図でスキーマが必要といっているかわからないけど、
mysqlの場合1インスタンスに複数のデータベースを作成できるから代用できると思うけど。
MySQLはよく知らないけど、MySQLは複数のデータベースにあるテーブルを結合したりできるの? ■ このスレッドは過去ログ倉庫に格納されています