トップページphp
385コメント112KB

MySQL vs PostgreSQL

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/09(水) 02:02ID:???
結構興味ある人多いのでは?
俺はもう少しMySQLが評価されてほしいと思うけれど、PostgreSQLも好き。
語ってくださいな。
0069nobodyさん02/04/25 16:49ID:H/XSRPXK
>>67
>>68
MySQL-MaxはSERIALIZABLEまでサポートしているよ
0070nobodyさん02/04/26 01:46ID:aKJw6oZ3
BDBがサポートされてから何年も経つのに、いまだに「MySQLにトランザクションはない」
って言う人絶えないよね。どっから情報が流れてるんだろ? 単行本?
0071nobodyさん02/04/26 01:49ID:uBZvlRFd
>>70
書籍とか、MySQLを使ってみた感想などを書いているWebサイトとか、
いっぱいありますからね。
ほんとに困ったもんです。トホホ。
0072nobodyさん02/04/26 01:55ID:???
でも、BDB使うならMySQL使うメリットもないなぁ。
0073nobodyさん02/04/26 16:20ID:???
じゃInnoDBつかえば?
0074nobodyさん02/04/27 14:45ID:40Y3gDf/
BDBとかInnoDBとか含まれてるらしいけども
それが含まれてトランザクションとか使えるようになったわけだよね?
なにやら設定だとかも特別に必要だとか。
管理とかめんどくさくなったりするの?
0075nobodyさん02/04/27 23:16ID:WvEh4JFD
>>66
下手に正規化するよりかは、テーブルを冗長気味に作ったほうがいいと
いうことだねぇ、たぶん
0076nobodyさん02/04/28 00:36ID:???
>>74
特別な設定は全く無いとは言わないけど、ほんのちょっとだよ。
CREATE TABLE文の最後に、Type=InnoDB とか付け加えれば、そのテーブルは
トランザクションに対応したInnoDBテーブルになる
0077102/04/28 16:45ID:C3o4tOYE
すごい長寿スレだw 
あんまりこないのだけれど、この板じゃこのくらい普通なの?

>>70
何年も経たないでしょ? BDBが使えるようになってちょうど2年くらい?
だし、使えることは事実としても、PostgreSQLではなくBDBやInnoDB使用
のMySQLでトランザクションを使うメリットってある?

俺の認識ではやっぱりMySQLはMyISAMでトランザクション処理が必要ない
場面でこそ真価を発揮すると思っているのだけれど・・・
0078nobodyさん02/04/28 22:52ID:???
PostgreSQL使いから見ると、MyISAMとかBDBとかInnoDBとかとMySQLとの関係が分からんのだけど、
そこら辺まとめて解説してあるWebページとかある?
どういう仕組みになってるの?
0079102/04/28 23:53ID:Nql8g44v
>78
MySQLの場合、あらかじめテーブルの形式を選んでおく必要がある。
デフォルトはMyISAMという形式で、検索・更新は速いのだけれど
トランザクションが使えなかったり、色々制約がある。
BDBやInnoDBはトランザクションが使える形式だけれど、MyISAMより
遅いのとフルテキスト・インデックスが作れないとか、これまた制約
がある。

↓英語と日本語混じりだけれど、一番詳しいのはここかな?
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Table_types.html
0080nobodyさん02/04/29 00:12ID:L8KHf1nv
>>77
PostgreSQL使う必要がなくなるよ。
0081nobodyさん02/04/29 00:42ID:oAtRhIR1
>>80
MySQLのウリって速さなのに、その速さをわざわざ殺して…、ってことじゃないんでしょうか、
多分。
0082nobodyさん02/04/29 01:01ID:6cDOgkjX
>>80
おれもPostgreSQL使いなんだけど、MySQLはトランザクション使えないとか、
速いだけ、とかいう印象だったわけ。どうやら間違いだったようだけど、
ただ、79の書き込みを読む限りでは、PostgreSQLを使う必要が無いのかもしれないけど、
あえてMySQLを使う理由というのもどうも見当たらない。
むしろテーブルを定義する際にBDBやらInnoDBやら設定しなければならないというが
多少抵抗有り。
その辺MySQL使いの人はどう考えてんだろ?
0083nobodyさん02/04/29 11:35ID:L8KHf1nv
>>81
私が使った感触では、InnoDBテーブルにしても特に遅くなったと
は感じなかったよ。

PostgreSQLは、データベースのサイズが大きくなるほど、リニアに
性能が劣化するらしいのだが、ほんと?
0084nobodyさん02/04/29 13:12ID:???
InnoDBは知らないけど、BDBはかなり落ちるでしょ?
つか、開発陣もそう明言してたような。
0085nobodyさん02/04/29 13:18ID:ohqYmtGy
>>83
>私が使った感触では、InnoDBテーブルにしても特に遅くなったと
>は感じなかったよ。

 トランザクションをサポートすると、DBの内部構造が大幅に変化する。

 どういうことかと言うと、ロールバック・セグメントに一旦データーを
書き込んで、COMMIT後にディスクに書き出しを行うようになる。
 つまり、トランザクションをサポートするとディスクの読み書きが倍に
なるので、DB性能が劣化しないほうが基本的におかしい。

 もしかしたらロールバック・セグメントをメモリー上に保持する構造な
のかも知れないけど、その場合はまた別に問題がでそう。

>PostgreSQLは、データベースのサイズが大きくなるほど、リニアに
>性能が劣化するらしいのだが、ほんと?

 フル・テーブルスキャンなら、どんなDBでもサイズに比例。

 いいたいことは、DELETEを繰り返すとゴミ掃除しないと遅くなると
いった特性のことだと思う。
 これは読み取り一貫性の実装の為で今のバージョンはオンラインで
ゴミ掃除できるから基本的に問題無し。

 PostgreSQL使いとしては、MySQLもInnoDBで色々出てくる問題もあ
るんだろうなと思う。
0086nobodyさん02/04/29 14:10ID:L8KHf1nv
>>85
だ・か・ら ほとんど変わんなかったんだよ
0087nobodyさん02/04/29 14:33ID:L8KHf1nv
PostgreSQL用のJDBCドライバって、使えるシロモノなの?
こんな問題があるとか、知ってる方いらっしゃいませんか?

EJBなどを使ってアプリケーションサーバーと組み合わせて使おう
かと考えているのですが...。
0088nobodyさん02/04/30 00:24ID:???
>82
sub-selectやviewやストアド使えないのって、
普段使ってる人には結構痛いような。。。
0089nobodyさん02/04/30 01:02ID:On4duFT+
>>88
select * from products where price in ( select max( price ) from products )
(これあってたっけ?)
とかさ、どうやって実現すんだろうか…
いや、SQL文を二回発行すればいいっていうのは分かるけど
0090nobodyさん02/04/30 01:10ID:fm61+/4G
Postgresってreplication出来るの?
0091nobodyさん02/04/30 01:27ID:On4duFT+
>>90
レプリケーションってAccessも備えているアレだな。

Postgres は DB稼動させたままDUMPできるからな。
WALもあることだし、まあなんとかなるんじゃないかと。
0092nobodyさん02/04/30 02:19ID:???
>90
同期レプリケーションはないです。

PostgresのProxy的に動くUsogresというものはあって、
こいつは一つのクライアントからのクエリを二つのサーバに送ります。
「リアルタイムバックアップ」と称しているようです。

あと、Postgresのcontribの中にrservというものがあって、
こいつはトリガを利用して、更新を自身のDBの中にログとして保存し、
クライアントからpollすることで非同期なレプリケーションを
実現します。

ただし、複雑なトランザクションは後方参照があった場合にどうなるのかは
よく分かりません。
0093nobodyさん02/04/30 02:21ID:???
訂正。

> ただし、複雑なトランザクションは後方参照があった場合にどうなるのかは

ただし、複雑なトランザクションや後方参照があった場合にどうなるのかは
0094nobodyさん02/04/30 05:40ID:cIvpnxu+
>>89
> いや、SQL文を二回発行すればいいっていうのは分かるけど
なら二回発行しろよ!
っていうのが、MySQLの基本思想だと認識してる。その辺が個性的で好き
0095nobodyさん02/04/30 09:02ID:hqeE3hHP
>>94
 二回発行すると、DBとの通信部分で遅くってしまうという罠
0096nobodyさん02/04/30 10:12ID:???
罠っつーか、自明。
0097nobodyさん02/04/30 10:15ID:???
>91
WALですが、チェックポイントを通過した部分は再利用されるので、
アーカイブログ的な使い方はできません。あくまでエラーリカバリ用でしょう。

差分バックアップ、あるいはアーカイブログは
今後のPostgresの大きなテーマだと思います。
0098nobodyさん02/04/30 10:33ID:hqeE3hHP
>>97
 RMAN嫌い。そしてハードウェアRAID使え。
0099nobodyさん02/04/30 10:47ID:???
すんまそん。前の文の意味が分からんのです。
0100nobodyさん02/05/02 11:40ID:???
>>99
DBとかアプリケーション単体のレベルじゃなくて、ハードディスクごと二重化しちゃえって
ことでしょ
0101nobodyさん02/05/02 22:46ID:???
あ、いやRAIDはその通りだと思うのだけど、RMANって何?
0102nobodyさん02/05/03 04:37ID:???
あ、RMANってOracleのバックアップリカバリツールだったんですね。
http://www.oreilly.co.jp/EBOOK/rman/

知らんかったー。
0103nobodyさん02/07/07 04:29ID:???
テーブルにmp3データを格納することってできますか??
0104nobodyさん02/07/07 05:09ID:???
PostgreSQLはラージオブジェクトとしてバイナリストリームそのまま突っ込めます。
MySQLは知らん。
0105nobodyさん02/07/07 07:58ID:???
job
010610302/07/07 21:46ID:???
>>104
ありがとう!!
0107nobodyさん02/07/08 00:01ID:???
んで、MySQL はlongblob で 0〜4GB の binary stream をつっこめます。
0108nobodyさん02/07/10 03:41ID:???
http://www.innodb.com/bench.html を見ると InnoDB の performace が
やたらと高いんだけど、マジ? MyISAM よりいいっていうのはちょっと
信じられないんだけど。
0109nobodyさん02/07/10 04:09ID:cLE8YwY7
にしても、InnoDB でも table level lock なのは相変らずか。
0110nobodyさん02/07/10 05:56ID:TMBfeumq
http://js-web.cside.com/
0111nobodyさん02/07/10 06:52ID:H+UmWFjx
>>108
InnoDB の performaceってモー娘。に例えるとなっちだよね。
俺は嫌いじゃないけどなぁ。
0112nobodyさん02/07/10 18:41ID:???
>>111
お前、なにいってんの?
0113nobodyさん02/07/10 20:12ID:QSc4QY44
>>111
(゚Д゚)ハァ? 氏ねばぁ?
0114nobodyさん02/07/11 14:20ID:7qnevra4
>>111-114
まとめて氏ねよ
0115nobodyさん02/07/11 16:02ID:???
>>114
なかなか謙虚な人だね
0116nobodyさん02/07/11 17:27ID:???
>>114
ちゃんと自分も死ぬんだね。
0117nobodyさん02/07/13 01:16ID:???
確かに>111は (゚Д゚)ハァ? なんだけど、理由を聞いてみたい気もする(あるなら)
0118nobodyさん02/07/22 15:17ID:E6vbyL4l
PostgreSQL のデータ型の serial を便利につかってきたんだけど、
MySQL だと int auto_increment を使うのかな?
0119nobodyさん02/07/27 16:06ID:j2bte65y
>118
そう
0120nobodyさん02/08/28 11:13ID:wg4G3hMu
>>117
理由
http://dempa.2ch.net/dat/2002/08/entrance2-1025274188.html
ここの101
0121nobodyさん02/08/28 14:43ID:???
0122nobodyさん02/08/28 16:56ID:???
>>120
確かに面白いが、不愉快なので複雑。
0123nobodyさん02/08/30 02:01ID:Gtn1LhFK
MySQLってほんと単純なこと以外はダルイよな。
みんな仕事でつかってんの?

商用のやつを使っているとどうしてもPostgreSQLしか選びたくなくなるような。
早い早いって,
ほんまか?

INSERT UPDATE句に SELECTかませなかったら,めっちゃだるいやん。
単純なことしかできないので,処理が増えて,逆に遅くなることのほうが
多いような気がする。
0124nobodyさん02/08/30 05:57ID:8/lSbw56
>>123
 サブクエリー使えない人の為のデータベースだから、問題ない
0125b02/08/30 06:14ID:6STGukER
http://pinktower.com/muvc.net/jsweb/
0126nobodyさん02/08/30 14:26ID:???
>>123
うん、OracleかPostgreSQLしか使ってないね。
MySQLにするなら、DATファイル書き出しにするね。
0127nobodyさん02/08/30 18:19ID:???
"DATファイル書き出し"ってなんですか。とか聞いてみるテスト。
0128nobodyさん02/08/31 21:34ID:olUxOE4H
どっちでもええが、ORACLEのストアド・プロシージャ
みたいなのってあるの?
0129nobodyさん02/08/31 21:55ID:???
>128
postgresにはpl(pg!)sqlがあるよ
C関数とかもある。
013012802/08/31 22:20ID:???
>129 サンクス

どっちもまったく知らないんだが、スレを見る限り、

PostgresSQLは難しい面があるが、割といろんなことができる
MySQLは簡単に設定できるが、Oracleとかに慣れた人からすると
物足りない気がする

って感じですか?

オラクル知ってる人はこれから始めるなら
PostgresSQLの方がいい?
0131nobodyさん02/08/31 22:52ID:???
別にボラあるんならpostgresつかわねーって話も。
ボラはなんだかんだいってよくできてますし。

導入費抑えたいならpostgres使えば?
mysqlは、csvの代わりになるんでは・・・
013212302/09/01 02:04ID:Rn3wDJdF
えっと,PostgreSQLのストアドはいい開発環境とかあるのかな?
SQLはcse使っているけど,あれではストアド作ることしかできないよな。
いい開発環境がないと,どうもそもそも使う気になれない。
ただ,SQLにソースを書くのは好きではないので,PostgreSQLでもストアドはやっぱり使いたい。

誰かいい開発方法知らんかのぉ。
普段使ってるストアドはTransactSQL(SQLserver)になるが,
たとえば,こんなものを作るとする。

DECLARE @no int
SET @no = 1

SELECT *
FROM TABLE
WHERE no = @no

@no = 1 でSELECTするということ。
これを,ストアドに変えようと思ったらそのまま,
上と下に Createprocedre [selectno](こんなんだっけ) go とかつけたらストアドになるしね。
こんな簡単なSQLだったら,一発で作れるだろうが,ちょっと複雑なもので
テストとか繰り返して,作ろうと思ったら,そういう開発環境いるよな。

また,コンソールから exec selectno(1)
みたいにしたら,ストアドをキックできて,結果も見れる。
こんなこと出来るのかな。
0133nobodyさん02/09/01 03:24ID:???
>132
マルチウゼェ
http://pc.2ch.net/test/read.cgi/php/989375812/
0134nobodyさん02/09/02 18:10ID:???
>130
> PostgresSQLは難しい面があるが、割といろんなことができる

別に難しくはない。設定も別に面倒じゃないよ。

ただ、Oracleみたいにいたせりつくせりじゃないし、情報もまだ少ない。
ちょっと古い情報に引っかかると、最新版のPostgreSQLだと挙動や
仕様が違う場合がある。厄介と言えば厄介。

でも、信頼性や堅牢性にはかなり重点を置いている(と思う)ので、
そういう点では結構安心して使えると思う。

運用における楽ちんさは、まだまだだけどね。
013512802/09/02 19:02ID:???
> Oracleみたいにいたせりつくせり

うーむ。

ある程度オラクルを使ったんだが、
ツール類の充実度の低さは半端じゃなく、
ドキュメントもわざとわかりにくく書いてる、
なんていわれてるほどで、
やれサポート料金だ、やれ資格だ、やれマニュアルだ、
となんだかんだで金をふんだくろうとする
オラクルの金の亡者ぶりに嫌気が差したんだが、
データベースの出来、という面では
他よりはマシなんかもしれんね。(皮肉でなく)

> 最新版のPostgreSQLだと挙動や仕様が違う

まー、これもオラクルでもあって、
一度ひでえ目にあったが。

うん、うだうだいってんとまず使ってみるわ。
あんがとよ〜。
013613402/09/02 19:51ID:???
あ、おいらはOracleはまったく知らんので、耳学問ちゅーか、
伝聞で書いてます。
ただ、やぱ、Oralceの情報量はすごいと思う。

ところで、最近追い上げてる感のあるDB2ってどうなんだろう?
0137nobodyさん02/09/10 14:44ID:???
>>136
DBMS は Oracle か Oracle 以外かって感じだからなぁ。
確かに DB2 のパフォーマンスは Oracle 以上のものがあるんだけど、
Oracle 以外の商用 DB をわざわざ導入する必要があるんかいなって
いう話になっちゃう。PostgreSQL で (SQL 的な) 機能的には足りるし、
パフォーマンスもそれほど見劣りするってわけじゃないしね。
0138nobodyさん02/09/13 20:33ID:???
>>136
そーいうのは業界によりだな。
例えば古くから基幹業務系システムとか触ってるとこだと
DB2以外はRDBMSですらないとか暴言吐いてたりするし。
0139nobodyさん02/09/28 04:04ID:???
PostgreSQLとMySQlではどちらが扱い易いというか簡単ですか?
SQL初心者です。よろしく。
0140nobodyさん02/09/28 05:30ID:???
ログ嫁
0141nobodyさん02/09/28 10:11ID:???
ログ嫁ぃますた。どっちがおすすめでしょうか?
PostgreSQL は 遅くて難しいような簡単なような
MySQl は 速くて簡単なような逆に難糞そうな あ〜。
0142nobodyさん02/09/28 13:48ID:???
mysqlオススメ
0143nobodyさん02/09/28 16:40ID:???
両方試せよ
0144nobodyさん02/09/28 19:20ID:???
PostgreSQLオススメ
0145nobodyさん02/09/30 20:21ID:vswf6PqC
第三正規化までやらないならMySQL、やるならPostgreSQL
0146nobodyさん02/10/01 06:42ID:???
>>141
あんたにゃどっちでもいいことだけは確実
0147nobodyさん02/10/03 13:56ID:???
タダデ使えるDBだからって・・・
どうせ、OSもLinuxなんなら、Linux版Sybase使ったほうが
こっちも無料なんだから幸せだとおもうけど、どうよ。
0148nobodyさん02/10/03 15:48ID:???
無料で使えるか、商用DB使うかは、目的によると思われ。
何のために、どのようなDBが必要なのかを明確にしる。
「DBを使う」こと自体が目的なら、逝ってヨシ。
0149nobodyさん02/10/03 21:52ID:???
>>147
無料で使えるのって開発用途だけじゃなかったっけ。
0150nobodyさん02/10/04 11:57ID:???
>>149
うーん。詳しくはHPにも書いていないのでわからんけど、
サポートが受けられないだけで無償のようなきがする。

今月の日経オープンシステムにも、無償利用できるとしか
書かれていないし良いような書き方だけど。
0151age02/10/15 11:12ID:???
なんでPostgreSQL対応のレン鯖って少ないの?
MySQLなんてPHP難しすぎて書けないっつーの
とりあえず全レン鯖PostgreSQL対応させやヴォケェェェェェェェェエ
0152nobodyさん02/10/15 13:13ID:???
MySQL versus PostgreSQL
http://www.mysql.com/information/benchmarks.html
0153nobodyさん02/10/15 16:33ID:???
>>151

リア厨は黙って用語の勉強汁!
0154nobodyさん02/10/15 21:16ID:???
>>151
黙ってpear使え。
0155nobodyさん02/10/18 15:26ID:???
>>151
PHPからMySQLとPHPからPostgreSQLってそんなに難易度違うか?
0156nobodyさん02/10/19 00:10ID:???
変わらないとおもうけど。
0157nobodyさん02/10/21 19:38ID:???
んじゃ何で>>151は「MySQLなんてPHP難しすぎて書けないっつーの」って叫んでるんだろ。
精神病の一種かな。。。
0158nobodyさん02/10/21 19:42ID:???
MySQLって、もしやクエリがPHPで書けるのか??(w
>>151は、まぁ何か悪いモノ食べたか、北のほうから帰ってきたんでしょう。
そっとしてあげましょう(w
0159sage02/10/22 16:50ID:???
MySQL、InnoDB、ヌチネ、爨ネ・・ラ・・ア。シ・キ・逾、ヒシコヌヤ、ケ、、隍ヲ、タ。」
、ス、筅ス、筵・ラ・・ア。シ・キ・逾・オ・、・ネ、ホサナチネ、゚、マInnoDB、ホ・・ョ・・・ー、サネ、テ、ニ、、、、ォ。ゥ
、「、ネ、、ォ、鬢、ホ、タ、ア、ノ。「MySQL、ホ・・ラ・・ア。シ・キ・逾、マ・゙・ケ・ソ。シツヲ、ォ、鬢ノ、ヲ、荀テ、ニ・ケ・。シ・ヨ
、ヒケケソキ、ォ、ア、ニ、、、、、タ。ゥテアス网ヒ・ケ・・、・ヨツヲ、ヒトセタワ・ッ・ィ・遙シナ熙イ、ニ、、、、ホ、ォ。ゥ
grant。。file、荀ーユフ」、ャ、、ォ、鬢。」
0160nobodyさん02/10/23 10:17ID:???
読めません。
0161sage02/10/24 13:15ID:???
MySQLをInnoDBで組むとレプリケーションに失敗するようだ。
そもそもレプリケーションサイトの仕組みはInnoDBのロギンングを使っているか?
あとわからんのだけど、MySQLのレプリケーションはマスター側からどうやってスレーブ
に更新かけているんだ?単純にスレイブ側に直接クエリー投げているのか?
grant fileやる意味がわからん。
0162nobodyさん02/10/29 01:49ID:/jFhYCR+
もしかしてmysqlでは
to_charは使えないのでしょうか?
0163nobodyさん02/10/29 09:24ID:???
date_format(日付,書式)
0164nobodyさん02/12/05 16:20ID:zz0V84tE
今、PostgreSQLを使っています。
JSP/サーブレットに興味が出たので、10日でおぼえるJSP/サーブレット
(翔泳社)を買ってきました。
そしたら、サンプルはMySQLでした。

入門なんで、PostgreSQL用に書き直すようなことはできないとおもいます
ので、PostgreSQLとMySQLを同じLinuxサーバに投入しょうかと思うんです
けど、両方同時に起動させるなんてことできるんでしょうか?
0165nobodyさん02/12/05 16:24ID:Ejjyn6K+
>>164
できるよ
0166nobodyさん02/12/05 16:26ID:???
入門の簡単なサンプルだからこそ書き換えて自分がちゃんと理解できてるか
試せすのに丁度良いと思うのだが。

>両方同時に起動させるなんてことできるんでしょうか?
出来る。
0167nobodyさん02/12/05 16:31ID:zz0V84tE
>>165
>>166

回答速っ!
ありがとうございました。

まづ、サンプルそのまま動かす→そのままPostgreSQL用に改造してみる
って流れにしようとおもってます。


0168nobodyさん02/12/08 16:51ID:10AoHjdc
MySQLはその処理速度の速さが売りみたいなんですが、漏れのPCだと「早い」って感じない。むしろ遅く感じる。漏れがWindowsで4.0.x-max使ってるからかな?
と思ってPostgreSQLダウソしようと思って本家逝ったらWin32バイナリがない。
むぅ・・・・・。
詳しい人いますか?
■ このスレッドは過去ログ倉庫に格納されています