MySQL vs PostgreSQL
結構興味ある人多いのでは?
俺はもう少しMySQLが評価されてほしいと思うけれど、PostgreSQLも好き。
語ってくださいな。 まあまあ、そう言わず。
どっちがいいの?。でもいいし、いろいろ比較してくださいって趣旨でお願い。
けんかしてくれってわけじゃないんだしさ・・・
一昨年位に予算がなくてフリーのデータベースで開発しなきゃならないことが決まって
そのときはまだあんまり資料がなくてどっちがいいのかすごく悩んだもんです MySQLも去年からライセンスがGPLになったので、ほんとに用途だけを考えて
選べるようになりましたね。
トランザクション機能が不要なら、MySQLが圧倒的に速いと聞きましたが。 >>5
>トランザクション機能が不要なら、MySQLが圧倒的に速いと聞きましたが。
これ良く聞くけど、オプティマイザの性能はどうなんでしょう?
簡単なSQLは獏速だけど、ちょっと複雑なクエリーは超遅だと、
用途によっては使えない気が。
テーブル2,3個のJoin位だったら速いんだろうけど。 MySQL、なんでトランザクション使うのにBerkeleyDBが必要なんだろう、、、
正式版では不要にならないのかな?
設定イヤイヤ厨房でスマンス。
開発はWin上使うし、、、 >>6
DBM/CSV の代替的な用途、例えばフィルタ・ソート機能つき DBM/CSV として
使う人が多いんじゃないかと思う。
そういう目的に特化しているんじゃないかな。Transaction がない時点で
複数テーブルにまたがる同時更新の保証がないわけだし。
# MySQL って更新可能な View ってあるかな・・と思ったら View の
定義はできない?。
>>7
MySQL の Transaction は BerkeleyDB のトランザクション機能を使って
実装されているから。 まあ View 使わないと管理できないような複雑なスキーマを作るなという
神の啓示だと思うことにしよう。 >MySQL の Transaction は BerkeleyDB のトランザクション機能を使って
>実装されているから。
なるほど。失礼しました。
Windowsでも使えるのかな、、、って自分で調べなさい>おれ ファイル名から "+" を削ってみたら?
ファイル名を 8 文字の適当な名前にしてみたら?
解凍ソフトの問題じゃないのか? 何度やっても、どの解凍ソフトでも駄目なんだよなぁ・・・。
win2000のせいかな? こっちも Windows2000 + WinZip だが問題なく開けるぞ。 こっちも Windows2000 + WinZip だが問題なく開けるぞ。
ハハハ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ^∀^)< あほか
( つ ⊂ ) \_________
.) ) )
(__)_) (^∀^)ゲラゲラ キエロ カイセンキッテクビモキレ ケラ 時刻の順番おかしくない?
>>17 名前:電動ナナシ 投稿日:2001/06/19(火) 16:32 ID:???
こっちも Windows2000 + WinZip だが問題なく開けるぞ。
>>18 名前:電動ナナシ 投稿日:2001/06/19(火) 16:31 ID:???
こっちも Windows2000 + WinZip だが問題なく開けるぞ。 LinuxでMySQL動かしてます。もう、めんどくさいのでWindowsクライアントから
ODBCつかってメンテしようと思いましたが、localhostからの
接続以外はできないようです。どの設定をいじればいいのでしょうか? USERテーブルのHOSTがlocalhostだけになっている。 ハハハ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ^∀^)< あほか
( つ ⊂ ) \_________
.) ) )
(__)_) (^∀^)ゲラゲラ キエロ カイセンキッテクビモキレ ケラ >>25
ユーザーを登録してみたのですが、それを確認するのは
どうするのでしょう? つまり、
grant select, insert, update, delete, create, drop
on *.* to root@"*" identified by 'PASS';
で更新し、その後再起動してもODBCアクセス拒否されて、
ユーザー権限確認したいのですが・・・。 ODBCの前にWin版コンソールクライアント(mysql.exe)で接続試してみたら?
Win版クライアントでLinux版サーバにログインできるのか知らないけど。
無責任resスマソ こっちも Windows2000 + RealPlayer だが問題なく抜けるぞ。 なんで MySQL は FreeBSD 3.5.1 で make できないんじゃぁゴルゥァ!
Making all in client
gmake[2]: Entering directory `/usr/local/src/mysql-3.23.42/client'
c++ -DUNDEF_THREADS_HACK -I./../include -I../inc
lude -I./.. -I.. -I.. -O3 -DDBUG_OFF -fno-im
plicit-templates -fno-exceptions -fno-rtti -DMYSQLD_NET_RETRY_COUNT=1000000 -c m
ysql.cc
cc1plus: Invalid option `-fno-exceptions'
In file included from mysql.cc:28:
../include/global.h:671: warning: abstract declarator used as declaration
gmake[2]: *** [mysql.o] Error 1
gmake[2]: Leaving directory `/usr/local/src/mysql-3.23.42/client'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/src/mysql-3.23.42'
gmake: *** [all-recursive-am] Error 2 ports 使ってもダメ?
# 3.x は公式にはサポートされないけど。 >>34
ports だったら日本語対応してねーんじゃねーの?
make しなおすにしてもその時点でまたエラー出そうだが >>36
やっぱダメだった…
-fno-exceptions
ってのがいかんみたい。
どうしたらいいのか教えて>偉い人 >>40
http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Installing.html#Installing_source
gccが古くて
> cc1plus: Invalid option `-fno-exceptions'
-fno-exceptionsフラグが通らない?
Makefileの
CXXFLAGS = -O3 -DDBUG_OFF -fno-implicit-templates -fno-exceptions -fno-rtti
から"-fno-exceptions"を削除すれば通るかも知れないが...。(./configureの際、-fno-exceptionsが通るかどうかチェックされるはず) >>41
あ、ホントだ。どっちで聞けばいいんでしょう?
>>42
そうです。gcc が古いんですか…
でも configure は通るんですが…。
ちなみに-fno-exceptions というフラグはつけなくても問題ないもんなんでしょうか? 今年の初めにサクラのサーバに入れたけど、3.23.36は大丈夫だったよ。
一番安い専用サーバ。 >>45
よくわからないまま
./configure --prefix=/usr/local --with-charset=sjis --with-extra-charsets=all
make
make install
とやっただけです。 gcc295 にしたらすんなり通りました _o_
ところでこれまでずっと PostgreSQL しか使ったことなかったんですが、
PostgreSQL で言うところの
createdb
createuser
コマンドを MySQL 語に訳すとどうなるんでしょ?
ポインタでも結構です。 >>48
下げちゃったので age させて。スマソ MySQLのWin版がが公式ページやミラーから
ダウンロードできないのですが、なぜでしょうか?
一刻も早くMySQLユーザになりたいっす MySQL-ODBC-BDE-TDatabase-TQuery-TDataSource-データベースコンポーネント
だと、同じレコードを編集すると、他のユーザが編集しましたエラーになっちゃうよ。 Win2000でFreeDB使おうと思って、PostgreSQLとMySQLを試したんだけど、
PostgreSQLのWin32ネイテチブ版は、initdbはできてもpostmasterが動かなかった。
Cygwin版も、結局起動まで逝けなかった。
漏れの設定が悪いんだと思うんだけど、MySQLはめんどいことせずにサクっと動いたから、そのまま使ってる。
Win2000 + MySQL for Win32 + WebObjectsで、社内システム作ってるよ。今までWebLogic使ってたんだけど、いいねぇ、WebObjectsって。
お値段安いのに、基幹系も対応できるみたいだし。(もちろんOSがWin2000じゃだめだけどさー、Solarisでも使えるしね) WebObjectsとMySQLの接続は何でやってるの?>>54 >>55
MM.MySQLというJDBCドバイラ使ってるよ。
2.0.8はエラーこくので使えない。2.0.7がいいみたい。 誰かPostgreSQLの「継承機能」使い込んでる奴いる?
PostgreSQLオリジナルらしいんだけど、使いどころがよくわからん。。。 MySQLのトランザクションってInnoDBでの実現が主流になるの?
漏れBerkeley DBを単独で使った事もあってトランザクション処理はか
なり信頼してるんだけど。 MySQLでDBに接続しているマシンを知りたい場合
どうすればよいの???
oracleのv$sessionみたいなやつってなぁい??? >>54 は基幹系ってどういうものか知らないに一票。 >>60
InnoDBなら、150万レコード読み書きばりばりの実績があるんで
BDBよりInnoDBの方が個人的には信頼できる感じ。
>>61
show processlist; かな
MySQLってVIEWもサブクエリー使えないの!ショックだよ! >>65
そもそも、VIEWもサブクエリーも本当にそれ以外の解決法がないのか調査せよ。 MySQLのトランザクションって読み取り一貫性あるの? >>67
>>68
MySQL-MaxはSERIALIZABLEまでサポートしているよ BDBがサポートされてから何年も経つのに、いまだに「MySQLにトランザクションはない」
って言う人絶えないよね。どっから情報が流れてるんだろ? 単行本? >>70
書籍とか、MySQLを使ってみた感想などを書いているWebサイトとか、
いっぱいありますからね。
ほんとに困ったもんです。トホホ。 でも、BDB使うならMySQL使うメリットもないなぁ。 BDBとかInnoDBとか含まれてるらしいけども
それが含まれてトランザクションとか使えるようになったわけだよね?
なにやら設定だとかも特別に必要だとか。
管理とかめんどくさくなったりするの?
>>66
下手に正規化するよりかは、テーブルを冗長気味に作ったほうがいいと
いうことだねぇ、たぶん >>74
特別な設定は全く無いとは言わないけど、ほんのちょっとだよ。
CREATE TABLE文の最後に、Type=InnoDB とか付け加えれば、そのテーブルは
トランザクションに対応したInnoDBテーブルになる すごい長寿スレだw
あんまりこないのだけれど、この板じゃこのくらい普通なの?
>>70
何年も経たないでしょ? BDBが使えるようになってちょうど2年くらい?
だし、使えることは事実としても、PostgreSQLではなくBDBやInnoDB使用
のMySQLでトランザクションを使うメリットってある?
俺の認識ではやっぱりMySQLはMyISAMでトランザクション処理が必要ない
場面でこそ真価を発揮すると思っているのだけれど・・・ PostgreSQL使いから見ると、MyISAMとかBDBとかInnoDBとかとMySQLとの関係が分からんのだけど、
そこら辺まとめて解説してあるWebページとかある?
どういう仕組みになってるの? >78
MySQLの場合、あらかじめテーブルの形式を選んでおく必要がある。
デフォルトはMyISAMという形式で、検索・更新は速いのだけれど
トランザクションが使えなかったり、色々制約がある。
BDBやInnoDBはトランザクションが使える形式だけれど、MyISAMより
遅いのとフルテキスト・インデックスが作れないとか、これまた制約
がある。
↓英語と日本語混じりだけれど、一番詳しいのはここかな?
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Table_types.html >>77
PostgreSQL使う必要がなくなるよ。 >>80
MySQLのウリって速さなのに、その速さをわざわざ殺して…、ってことじゃないんでしょうか、
多分。 >>80
おれもPostgreSQL使いなんだけど、MySQLはトランザクション使えないとか、
速いだけ、とかいう印象だったわけ。どうやら間違いだったようだけど、
ただ、79の書き込みを読む限りでは、PostgreSQLを使う必要が無いのかもしれないけど、
あえてMySQLを使う理由というのもどうも見当たらない。
むしろテーブルを定義する際にBDBやらInnoDBやら設定しなければならないというが
多少抵抗有り。
その辺MySQL使いの人はどう考えてんだろ?
>>81
私が使った感触では、InnoDBテーブルにしても特に遅くなったと
は感じなかったよ。
PostgreSQLは、データベースのサイズが大きくなるほど、リニアに
性能が劣化するらしいのだが、ほんと? InnoDBは知らないけど、BDBはかなり落ちるでしょ?
つか、開発陣もそう明言してたような。 >>83
>私が使った感触では、InnoDBテーブルにしても特に遅くなったと
>は感じなかったよ。
トランザクションをサポートすると、DBの内部構造が大幅に変化する。
どういうことかと言うと、ロールバック・セグメントに一旦データーを
書き込んで、COMMIT後にディスクに書き出しを行うようになる。
つまり、トランザクションをサポートするとディスクの読み書きが倍に
なるので、DB性能が劣化しないほうが基本的におかしい。
もしかしたらロールバック・セグメントをメモリー上に保持する構造な
のかも知れないけど、その場合はまた別に問題がでそう。
>PostgreSQLは、データベースのサイズが大きくなるほど、リニアに
>性能が劣化するらしいのだが、ほんと?
フル・テーブルスキャンなら、どんなDBでもサイズに比例。
いいたいことは、DELETEを繰り返すとゴミ掃除しないと遅くなると
いった特性のことだと思う。
これは読み取り一貫性の実装の為で今のバージョンはオンラインで
ゴミ掃除できるから基本的に問題無し。
PostgreSQL使いとしては、MySQLもInnoDBで色々出てくる問題もあ
るんだろうなと思う。 >>85
だ・か・ら ほとんど変わんなかったんだよ PostgreSQL用のJDBCドライバって、使えるシロモノなの?
こんな問題があるとか、知ってる方いらっしゃいませんか?
EJBなどを使ってアプリケーションサーバーと組み合わせて使おう
かと考えているのですが...。 >82
sub-selectやviewやストアド使えないのって、
普段使ってる人には結構痛いような。。。 >>88
select * from products where price in ( select max( price ) from products )
(これあってたっけ?)
とかさ、どうやって実現すんだろうか…
いや、SQL文を二回発行すればいいっていうのは分かるけど Postgresってreplication出来るの? >>90
レプリケーションってAccessも備えているアレだな。
Postgres は DB稼動させたままDUMPできるからな。
WALもあることだし、まあなんとかなるんじゃないかと。
>90
同期レプリケーションはないです。
PostgresのProxy的に動くUsogresというものはあって、
こいつは一つのクライアントからのクエリを二つのサーバに送ります。
「リアルタイムバックアップ」と称しているようです。
あと、Postgresのcontribの中にrservというものがあって、
こいつはトリガを利用して、更新を自身のDBの中にログとして保存し、
クライアントからpollすることで非同期なレプリケーションを
実現します。
ただし、複雑なトランザクションは後方参照があった場合にどうなるのかは
よく分かりません。 訂正。
> ただし、複雑なトランザクションは後方参照があった場合にどうなるのかは
ただし、複雑なトランザクションや後方参照があった場合にどうなるのかは
>>89
> いや、SQL文を二回発行すればいいっていうのは分かるけど
なら二回発行しろよ!
っていうのが、MySQLの基本思想だと認識してる。その辺が個性的で好き >>94
二回発行すると、DBとの通信部分で遅くってしまうという罠 >91
WALですが、チェックポイントを通過した部分は再利用されるので、
アーカイブログ的な使い方はできません。あくまでエラーリカバリ用でしょう。
差分バックアップ、あるいはアーカイブログは
今後のPostgresの大きなテーマだと思います。
>>97
RMAN嫌い。そしてハードウェアRAID使え。 >>99
DBとかアプリケーション単体のレベルじゃなくて、ハードディスクごと二重化しちゃえって
ことでしょ