人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPからMySQLとPostgreSQLを使うときの違いについて、注意する点はありますか?

●質問者: katase_n
●カテゴリ:コンピュータ
✍キーワード:MySQL PHP postgreSQL
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● JULY
●15ポイント

http://www.php.net/manual/ja/ref.mysql.php

PHP: MySQL 関数 - Manual

MySQL と、

http://www.php.net/manual/ja/ref.pgsql.php

PHP: PostgreSQL 関数 - Manual

PostgreSQL とで、PHP のインタフェースは似たり寄ったりですので、

「PHP から」ということでの特別な違いは無いでしょう。それよりも、

そもそも「MySQL」と「PostgreSQL」で概念が違うところや、

SQL の方言の部分など、PHP とは無関係に違う点の方が大きい

でしょう。

http://www.dokokano.com/php/php_pear_db.html

PHP4 Pear DBクラスの使い方

さらに PEAR に含まれる DB クラスを使えば、PHP のインタフェース

はの違いはなくなります。

先述のとおり、PHP 自体がもたらす違いは少ないと思います。

強いて言うと、MySQL のインタフェースは最初から使えて、

PostgreSQL のインタフェースは、追加しないと(もしくは、

コンパイルしなおさないと)使えない、というケースがよくある

ので、事前に phpinfo() でチェックしておくぐらいです。

◎質問者からの返答

上記のfetch_row()などでも引数が違うのが不思議なんですよね。

メモリの扱い方などが違うんでしょうか。


2 ● ssig33<xmp>
●15ポイント

http://pixy.issp.u-tokyo.ac.jp/~ueta/msg00227j.html

a comparison of 4 databases

傾向としては、PostgreSQLは高機能だけれども、多少動作が重い。MySQLは機能がPostgreSQLよりも多少劣るが動作が高速という特徴があります。ですが、現在では両者の差はよほど大規模完璧に近いシステムが求められるような状況でなければでほとんど無いといっていいと思います。またMySQLのほうが世界的にユーザ数が多いので、多くのWebアプリケーションが対応しています。またPHPを利用するWebアプリケーションは世界的にはMySQLに対応していても、PostgreSQLには対応していないというものが多く、国産の特に商用のものについては、逆の傾向があります。ドキュメントについても同様で、PostgreSQLは日本語のドキュメントがそろっており、MySQLは世界的に見れば、PostgreSQLよりも多くのドキュメントがあります。

◎質問者からの返答

MySQLは数年前に少し触っただけなんですけど今だと全然多機能ですよね〜。


3 ● esseesse
●15ポイント

http://www.hatena.ne.jp/1099646624#

人力検索はてな - PHPからMySQLとPostgreSQLを使うときの違いについて、注意する点はありますか?

URLはダミーです。

PHPに限らない話で、MySQLとPostgreSQLの違いについての注意点ですが、

それぞれのDBMSに依存する部分(関数とか。)に関しては当然注意は必要なのですが、

MySQL(4.0系)にはサブクエリやView、外部キーがありません。(4.1系、5.0系、InnoDB等では対応しているものもあり)

# その分処理が早いわけですが。

ですので、それらが必要な場合はPostgreSQLにするかstableでない(4.1系とか5.0系とか)MySQLを使う必要があります。

このへんはライブラリを使っても吸収できないところなのでご注意ください。

◎質問者からの返答

InnoDBっていうのがまだよく分かってないのですが、普通MySQLと言った場合には含まれないんでしょうか?


4 ● esseesse
●15ポイント

http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5b.html

@IT:エンタープライズ市場に向かうMySQL 5.0[前編](2/3)

URLはMySQLのバージョンによる機能の違いがわかりやすい記事です。

>InnoDBっていうのがまだよく分かってないのですが、普通MySQLと言った場合には含まれないんでしょうか?

どうやってMySQLをインストールするかにもよりますが、ソースからコンパイルする場合はconfigureのときに--with-innodbとしてやらないとInnoDBのテーブルは作れません。

バイナリからインストールする場合だと4.0以降はInnoDB対応で配布されているようですので、特に何もする必要はありません。

なお、MySQLをInnoDBに対応させても何も設定せずに普通にテーブルを作っただけではMyISAMになってしまいます。

1点、かなり大きなことを忘れてましたが、InnoDBじゃないとトランザクション処理ができなかったはずなのでご注意ください。

◎質問者からの返答

MySQLは手軽ってイメージがあったのですが使える機能を考慮してたら複雑ですね・・。


5 ● kekekun
●15ポイント

http://dev.mysql.com/doc/mysql/ja/Table_types.html

普通にデータベースを作ったり、テーブルを作ったりはfetch_rowで行指定があるかないかぐらいでほとんど変わらないと思います。

DBの情報を得る時のやり方はゼンゼン違うので要注意かと

例:データベース一覧、テーブルの一覧、フィールドデータなど

InnoDBなどのテーブルの型についてはMYSQLのマニュアルの上記のページに詳しく書かれています。

◎質問者からの返答

行指定が出来ないっていうことは一度読み出したらメモリから解放されるんですかね〜。

上のサイトはよく見てますが考えないといけないこと多いですね。

PHPのマニュアルを見る限りではエラーの取得の仕方も違うようですが・・・。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ