■掲示板に戻る■ 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

PostgreSQL or MySQL

1 :名無しさん :2000/04/12(水) 19:03
Apache+PHP/FIで検索システムを作ろうと思っています
PostgreSQLとMySQLのどちらがおすすめですか?
ご意見きかせてください
規模は小さいです&日本語必須です
サーバはLinux(Vine)を考えています


697 :名無しさん@お腹いっぱい。 :02/09/02 23:47
次スレからはOracleとDB2(とSybaseとInterbase)
も加えて!なんかDBすれがこれしかないと( ;∀;) カナシイナー

698 :名無しさん@お腹いっぱい。 :02/09/03 01:24
>>697
ム板に、ほとんどのDBMSのスレが揃っているわけだが。
あっちに出向くのは嫌だと?

699 :名無しさん@お腹いっぱい。 :02/09/03 08:48
>698
ム板のスレとは違う視点で議論したくない?
ないんだろうな〜スレたたないから・・・

700 :名無しさん@お腹いっぱい。 :02/09/03 09:38
>>699
ム板のスレは結構節操ないと思うが。
何を議論したいのか小一(略

701 :名無しさん@お腹いっぱい。 :02/09/04 00:40
次スレなんて早くて来年ぢゃない?

ヘタすりゃその前にdat落ち…

702 :名無しさん@お腹いっぱい。 :02/09/11 14:39
PostgreSQLでユーザ登録すると以下のメッセージが出力されてしまいます・・・
----------------------------------------------------------------------
psql: connectDBStart() -- connect() failed: Connection refused
Is the postmaster running at 'localhost'
and accepting connections on Unix socket '5432'?
createuser: creation of user "userA" failed
----------------------------------------------------------------------
これはpostgreSQLが起動されていないと思い、
postgreSQLの起動方法について調べてみました・・・
postgreSQLの起動にはpostmasterの起動が必要ということまでわかったのですが、
うまく起動してくれませんでした・・・
postgreSQLの起動方法を教えてください
よろしくお願いしますm(_ _)m

703 :名無しさん@お腹いっぱい。 :02/09/11 18:34
pg_ctl start


704 :702 :02/09/12 09:28
>>703
ありがとうございます
実行すると以下のようなメッセージが出力されました
どこに何のディレクトリを作ればよいのかわかりません( ´Д⊂ヽ

[postgres bin]$ postmaster start
/usr/bin/postmaster does not know where to find the database system data. You must specify the directory that contains the database system either by specifying
the -D invocation option or by setting the PGDATA environment variable.

[postgres bin]$ pg_ctl start
pg_ctl: No database directory or environment variable $PGDATA is specified

705 :名無しさん@お腹いっぱい。 :02/09/12 13:02
マニュアル嫁

706 :702 :02/09/12 13:14
解決しました
・PGDATAのフォルダ作成
・initdbによる初期化
以上の2つが原因でした
お手数をお掛けしました

707 :名無しさん@お腹いっぱい。 :02/09/12 16:51
PHP+postgreSQL+Apache
phpからpostgreSQLに、pg_connect関数を用いて接続したところ
$con = pg_connect("dbname=wwwdb");
次のエラーが表示されました
Fatal error: Call to undefined function: pg_connect()
接続できない原因がわかりません・・・

web公開されてるディレクトリにPHPファイルを作成しているのですが、
これは問題ないでしょうか?
ディレクトリによる権限の問題?
それともPHPからpostgreSQLへ接続の問題でしょうか?

708 :名無しさん@お腹いっぱい。 :02/09/12 16:55
>>707
http://pc.2ch.net/test/read.cgi/linux/1031670376/140-

709 :名無しさん@お腹いっぱい。 :02/09/12 23:14
>>707 --enable-pgsql


710 :名無しさん@お腹いっぱい。 :02/09/14 05:47
>709
--with-pgsql


711 :709 :02/09/16 07:37
>>710
--oops-thanks-for-the-correction


712 :名無しさん@お腹いっぱい。 :02/09/23 13:33
>>711
--np

713 :名無しさん@お腹いっぱい。 :02/09/24 17:46
くだ質できいて、Linux板へ行けといわれましたが、
Linux板にはPostgreSQLしかスレがなかったので、こちらに
質問させていただきます。

RedHat7.3+MySQL-3.23.52
で環境構築したいと思っています。
http://www.mysql.com/downloads/mysql-3.23.html
このサイトからtar.gzとRPM両方で試しましたが、エラーが出ます。

tar.gzを展開する場合はconfigureすると、以下のエラーです。
NOTE: This is a MySQL binary distribution. It's ready to run, you don't
need to configure it!

To help you a bit, I am now going to create the needed MySQL databases
and start the MySQL server for you. If you run into any trouble, please
consult the MySQL manual, that you can find in the Docs directory.

Sorry, the host 'localhost' could not be looked up.
Please configure the 'hostname' command to return a correct hostname.
If you want to solve this at a later stage, restart this script with
the --force option

「すでに起動してるので、コンフィギュアする必要がないよ。」 →ダウンロードして
一回目のconfigure又は、展開されたディレクトリ削除後にconfigure実行してます。

「MySQLに必要なデータベースを作成してMySQLサーバを起動するつもりだ。
もし、トラブルに見舞ったらDocsDirectoryにあるファイルを参照してくれ」
→Docsディレクトリはまだありません。

「ホスト名がよくわからないから、
フォースオプションをつけて、再度実行してみてね。」
→厨房なのでforceオプションは出来れば避けたいです。

714 :名無しさん@お腹いっぱい。 :02/09/24 17:50
>>713
> 「すでに起動してるので、コンフィギュアする必要がないよ。」
誤訳。

> 「ホスト名がよくわからないから、
訳が不十分。

715 :713 :02/09/24 17:50
続きです。

RPMパッケージは
MySQL-DBI-Perl-binとの依存関係のためインストールできませんでした。
MySQL-DBI-Perl-binというのが良く分からなかったので
そこでgoogle先生に聞いてみました。
http://www.google.co.jp/linux?hl=ja&inlang=ja&ie=Shift_JIS&q=MySQL-DBI-Perl-bin&btnG=Google+%8C%9F%8D%F5&lr=lang_ja%7Clang_en


うっ、、ここで手を詰まらせてしまいました。

何かヒントでもいただけると助かります。


716 :名無しさん@お腹いっぱい。 :02/09/24 17:53
>>715
> RPMパッケージは
> MySQL-DBI-Perl-binとの依存関係のためインストールできませんでした。
正確に書け。

717 :713 :02/09/24 18:00
>>716
申し訳ないです。
#rpm -ivh MySQL-bench-3.23.52-1
エラー:依存性の欠如:
MySQL-DBI-Perl-binは、MySQL-bench-3.23.52-1に必要とされています。

>>714
お恥ずかしい限りです。

1番目に関しては辞書で訳してみます。
3番目に関しては、「オプションでホスト名を指定しろ」って事っぽいですね。

718 :713 :02/09/24 18:03
>>717
ミスタイプです。
× #rpm -ivh MySQL-bench-3.23.52-1
○ #rpm -ivh MySQL-bench-3.23.52-1.rpm

719 :名無しさん@お腹いっぱい。 :02/09/24 20:30
>>713
そのままじゃないか。MySQL-DBI-Perl-bin とやらの RPM を入れろ。
というか RPM 絡みの質問は Linux 板へ逝け。

720 :名無しさん@お腹いっぱい。 :02/09/24 22:40
ソースから入れたら?
DBIのほうはCPANモジュールを使えば簡単だし。
そんなチン毛なRPMなんかいじって時間つぶすの馬鹿らしくない?


721 :名無しさん@お腹いっぱい。 :02/09/24 22:53
>>720
>713は、ソースからもインストールできないという罠。

722 :720 :02/09/25 00:22
>>721
いや、どう考えてもrpmの依存関係を解決するよりは楽。


723 :名無しさん@お腹いっぱい。 :02/09/25 08:28
>>717
なんで bench なんて入れようとしてんの?

724 :名無しさん@お腹いっぱい。 :02/09/25 08:55
自分はよくわかんないけど持っている本がPostgreSQLで説明していたのでPostgreSQLを入れた。

725 :713 :02/09/25 13:27
アドバイスありがとうございます。

確かに、benchなんていらないなと思い、最終的には
benchなし、又はMySQL-DBI-Perl-binをインストール
した形で運用します。

ただ、出来ることならソースからインストールしたくて
現在試行錯誤中です。
実は以下のサイトを参照しているのですが、
http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01b.html
このサイトには,ホスト名とMySQLの関係に一切触れていないので
再度、ホスト名とMySQLの関連を調べています。

726 :名無しさん@お腹いっぱい。 :02/09/25 17:41
MYSQLでフィールドのカーソルを操作したいのです・・・。
簡単な操作方法を教えてください。

727 :名無しさん@お腹いっぱい。 :02/09/26 09:05
age

728 :726 :02/09/26 10:32
>>726の質問間違えました。
無視してください。

729 :名無しさん@お腹いっぱい。 :02/09/26 15:56
ちょいと質問なんだけどさ。
postgreSQLのアプリ(psqlとかcreatedbとか)のオプションで"-W"って
あるけど、これってなんのためにあるの?

パスワード入力を促すっていっても、べつにでたらめいれても
かまわないしさ。

pg_passwdでパスワード登録して
pg_hba.confに
host all xxx.xxx.xxx.xxx 255.255.255.255 password passwd

って登録すると、
"-W"の有無に関わらず"Passwd:"なんて聞いて来るし。

"-W"は不要だと思うんだけど。
誰か知ってる人いる?


730 :名無しさん@お腹いっぱい。 :02/09/27 07:36
ttp://slashdot.jp/comments.pl?sid=45842&cid=171356
これって比較に使ったMySQLとPostgreSQLのバージョンはそれぞれ
いくつなんだろうか。


731 :名無しさん@お腹いっぱい。 :02/09/29 01:46
>>730
たしかに。必要とおもわれ。

そんな漏れはSQLさっぱりワカランがなんとなくPostgres好き。
ちまちまインストールしてカンタンなSQL文うってウホウホ言ってる。
初めてpg_dumpしたときは感動。厨房丸出しだ。。

732 :名無しさん@お腹いっぱい。 :02/09/30 09:41
インストールされているMYSQLのバージョンを確認したいのですが確認方法がわかりません・・・
よろしくお願いします

733 :名無しさん@お腹いっぱい。 :02/09/30 09:48
>>732

% mysql -V

rpm で入ってるなら

% rpm -qi mysql mysql-server

とかやるのが親切かも。




734 :732 :02/09/30 09:53
>>733 ありがとうございましたm(_ _)m

735 :名無しさん@お腹いっぱい。 :02/10/02 10:58
MySQLで質問です。
【LOCK TABLES/UNLOCK TABLES】処理で rollbackのような事はできるのでしょうか?

736 :名無しさん@お腹いっぱい。 :02/10/02 11:53
>>735
PostgreSQLみたいにROLLBACK;(あるいはそれに類するコマンド)と打てばBEGINあるいはCHECKPOINT(ここではLOCKをかけた地点)まで戻るということはできないと思うよ。
ただ、やった処理を覚えておいてLOCKかかったまま手動で逆実行すれば出来なくもなさそうだけれど、一般的な方法は無いしかなりきついと思う。
トランザクション処理とかトリガー処理が必要なときは素直にPostgreSQL入れたら?


737 :735 :02/10/02 12:53
>>736
レスありがとうございます
今の開発環境はMMQUBE2という環境でして、下手にさわれないんですよ(T-T)
自分のマシンだったら余裕なんですけど、会社のマシンなので・・・
そんなにLinuxも詳しくないので、バージョンアップしてから動作しなくなるのが怖いです・・・
難しい処理させてるわけじゃないので、ROLLBACKで頑張ってみることにします

738 :736 :02/10/02 13:02
>>737
DBMSによるcheckpointまでの自動的なrollback処理ではなく、手動ROLLBACKということですか。
がんばってください。


739 :名無しさん@お腹いっぱい。 :02/10/07 00:55
>>735
ver3.23以上なら、テーブル型にInnoDBかBerkeley_dbを指定すれば、
トランザクション使えるよ。

ただし、MySQL MAXでないと標準では組み込まれないので、
コンフィグ時に--with-innodbをつけるべし。
mysql.cnfの修正やテーブル型の指定法は、
ttp://www.mysql.gr.jp/jpdoc/
を参照すべし。

740 :名無しさん@お腹いっぱい。 :02/10/08 15:26
MySQLを使用しています

★select * from testA WHERE name LIKE '%a%';
このSQL文を実行すると、nameに「a」が含まれるもの意外も表示されるのですが、なぜでしょうか?
たとえば「Tシャツ」という名称もヒットしてしまいます・・・

シフトJISの2バイト目に「a」が含まれるからだと、までは解ったのですが
どう解決すれば良いのでしょうか?

741 :名無しさん@お腹いっぱい。 :02/10/08 15:38
>>740
文字コードをEUCにシル!

742 :名無しさん@お腹いっぱい。 :02/10/08 20:47
最近は DBMS + Perl(+DBI) なんて時代遅れなのかね?

743 :名無しさん@お腹いっぱい。 :02/10/08 20:47
ごめん、意味無く age てしまった。

744 :名無しさん@お腹いっぱい。 :02/10/08 21:51
>>740>>741便乗で失礼します。
MySQLで文字コードをUJIS(EUC)に変更してしまうと
iモードサイトで絵文字が文字化けしてしまって使えないと
思うのですがUJISの設定での解決方法ってあるんでしょうか。



745 :名無しさん@お腹いっぱい。 :02/10/08 22:05
>>744
DBに入れるときにEUCに変えて、表示するときにSJISにすればいいんでねーの?
で、変えられないもの(機種依存文字)はURL encodingでもしておくと。


746 :名無しさん@お腹いっぱい。 :02/10/21 17:46
MySQL歴1日の厨です。ちょっとお力を貸して下さい。
mysql.serverを実行すると
[root@host:~]# /usr/local/mysql/share/mysql/mysql.server start
Starting mysqld daemon with databases from /usr/local/mysql/var
021021 17:45:22 mysqld ended
となって止まってしまいます。んで
[root@host:~]# cat /usr/local/mysql/var/host.example.com.err
としてログを見てみたらエラーが3つ出ていました。

021021 17:45:22 /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/var/mike.tyson.com.pid' (Errcode: 13)
021021 17:45:22 /usr/local/mysql/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
021021 17:45:22 /usr/local/mysql/libexec/mysqld: Error on delete of '/usr/local/mysql/var/mike.tyson.com.pid' (Errcode: 13)

Errcode: 13をキーに色々探してみたんですがダメでした。
なんとなくパーミッションとかそんな感じのような気がするんですが・・・
インストールはmysql-3.23.52を
#pw groupadd mysql -g 92
#pw useradd mysql -g mysql -u 92
#./configure --with-charset=ujis --with-mysqld-user=mysql \
--prefix=/usr/local/mysql
#make; make install
でやりました。OSはFreeBSD4.3です。

747 :746 :02/10/21 19:17
自己レスです。varをchownしたら無事起動しますた。
/usr/local/mysql/bin/mysql_install_db
chown -R mysql.mysql /usr/local/mysql/var/ <これ
/usr/local/mysql/share/mysql/mysql.server start --user=mysql
失礼しました〜〜

748 :名無しさん@お腹いっぱい。 :02/10/22 17:09
教えて下さい、
PostgreSQLにて、月末日を求める関数とかあるのでしょうか?
例えば、2002年10月だったら31とかって意味です。
たしか、Oracleにはあったと思うのですが、
PostgreSQLでは探し出せません、
やはり、自前で関数を書いたりするのでしょうか。(涙

あと、日付の加算減算?等は可能なのでしょうか?
例えば、2002-10-15 の、前年同日のデータとか参照したりする場合に
利用したいのですが。

749 :名無しさん@お腹いっぱい。 :02/10/22 18:21
>>748
アプリ側で処理したら? 言語は何? 大抵はライブラリが揃ってるはず。


750 :名無しさん@お腹いっぱい。 :02/10/22 18:37
>>749
DebianWoodyにインストールした PostgreSQLにDelphiからPQCompoで繋いでいます。
で、なんとか解決しましたので、一応自己レスしときます、
但し、かなり汚くて正しいやり方があるのか無いのか解りませんが・・・。

select
to_char('2002/10/20'::DATE - '1 Year'::interval ,'YYYY-MM-01') as 前年同月,
to_char('2002/10/20'::DATE - '1 Month'::interval ,'YYYY-MM-01') as 前月,
to_char(now() + '1 Day'::interval ,'YYYY-MM-DD') as 明日,
to_char('2002/11/01'::DATE - '1 Day'::interval ,'YYYY-MM-DD') as 月末日;

751 :_ :02/10/24 16:58
みなさま、教えてください。
LINUXとPHP、MySQLでサーバを立てようと考えています。
MySQLってマルチCPUは対応しているのですか?
またCPU何台までOKですか?

本当にCPU増やすだけで性能って上がるものかしら。

752 :名無しさん@お腹いっぱい。 :02/10/24 21:48
>>751
MySQLはtheadを使って処理するからLINUXにおけるthreadの扱いによる。
threadベースでCPUに割り振られるならSMPにすると速くなるんじゃないかな。
また、いくつまでのCPUに対応しているかもそのOSの対応状況によるもので、MySQL自体に依るものではないと思う。

というわけで、あとはLinux板に行ってLinuxにおけるthread対応について聞け。


753 :751 :02/10/25 10:16
>>752
アリガトウ

754 :名無しさん@お腹いっぱい。 :02/10/26 12:04
>>751
thread対応がわかったのなら、
あとは平均の同時実行SQL数でCPU枚数決めちゃうっていう手があるね



755 :名無しさん@お腹いっぱい。 :02/10/26 16:29
つか、クエリの実行をパラレルに処理できるならともかく、
ふつーCPU枚数増やしたところで一つのクエリの処理性能が
向上することはないと思うけど。>751

同時に処理可能なトランザクションの数は増えるだろうけど。

でも、それはthreadかprocessか、とかには関係ないと思うし。


756 :名無しさん@お腹いっぱい。 :02/10/29 23:45
mysql4 GCC3.2でmakeできたヤシいますか?

757 :名無しさん@お腹いっぱい。 :02/11/02 13:40
>>755
ちょっと待って
普通セッション管理/SQLエンジン/バッファ管理/リーダ/ライタ/ログは独立して動いていると思うのだが・・・
まさかPostgresとかMySQLって全部1スレッド上で展開されてるの?

758 :名無しさん@お腹いっぱい。 :02/11/09 02:50
PostgreSQLのSQL文で変数って使えないでしょうか。
関数だと $1 とか使えますよね、あんな感じで良いのですが。

759 :名無しさん@お腹いっぱい。 :02/11/09 04:49
>>758
つかえますよ。

例:
$I = select col from tbl;
while($I.next) {
 update tbl set col2=$I where col=$I;
}


760 :名無しさん@お腹いっぱい。 :02/11/09 22:31
>>758
>>PostgreSQLのSQL文で変数って

普通のSQLでは使えません

761 :名無しさん@お腹いっぱい。 :02/11/09 23:46
>>758
意味不明。変数があると仮定したSQLを書いてみたまえ。

762 :名無しさん@お腹いっぱい。 :02/11/10 02:59
>757
何をもって「普通」と言っているのか謎ですが。
それに「リーダ/ライタ」って何ですか?

基本的にバッファなど共有すべきものは共有メモリに入ってるし、
セッションを張るたびにインスタンスが一個起動して、
そいつが共有メモリを使う。

統計情報取るプロセスは別に存在してますけど。

これはPostgreSQLの話。MySQLは知らん。


763 :名無しさん@お腹いっぱい。 :02/11/15 00:18
MySQLの標準内部文字コードを SJIS にした場合のデメリットって
何かありますか?

764 :名無しさん@お腹いっぱい。 :02/11/23 00:58
>763

なにかトラブったときに真っ先にそこが疑われる、
というデメリットが。

765 :名無しさん@お腹いっぱい。 :02/11/23 02:29
>>763
逆に聞きたいが、SJISにした場合のメリットって何?

766 :名無しさん@お腹いっぱい。 :02/11/23 08:10
IBM拡張漢字を使用できる

767 :名無しさん@お腹いっぱい。 :02/11/24 03:41
IBM拡張漢字を表示できない機種を排除したwebアプリが作れる

768 :名無しさん@お腹いっぱい。 :02/12/11 02:20
PostgreSQL-7.3とMySQL-4.0でちゃんとしたパフォーマンス測定を
してそうなサイトってありますか。どうもPostgreSQL 6の時代に
ひどい目に遭ったオサーンはボロクソにいってるようなんですが、
それっていまもそうなのかな……


769 :名無しさん@お腹いっぱい。 :02/12/14 21:05
6.xの時代と今とではパフォーマンス全然違いますよ。
トランザクションログが実装されましたんで。


770 :名無しさん@お腹いっぱい。 :02/12/17 05:37
んで、MySQL も innoDB のおかげでトランザクション処理を可能にしたし
大規模 DB でのパフォーマンスも上げてきたしね。

しっかし、MySQL 4.0 のリファレンスマニュアルにある
For the upcoming MySQL Server 4.x releases, expect the following features
now still under development:

Mission-critical, heavy-load users of MySQL Server will appreciate the
additions to our replication system and our online hot backup.
Later versions of 4.x will include fail-safe replication; already existing
in 4.0, the LOAD DATA FROM MASTER command will soon automate slave setup.
The online backup will make it easy to add a new replication slave without
taking down the master, and have a very low performance penalty on
update-heavy systems.
って本当かいな。

771 :名無しさん@お腹いっぱい。 :02/12/19 02:28
PostgreSQLのバキュームについて教えてください。

当方6.5.?なので、バキュームは非常に不安定です。
また、バキュームだけではインデックスは作り替えてくれません。
ですので、代わりにDBのメンテとして
pg_dumpでバックアップし、dropdb,createdbをして
psqlで復元するという方法を使おうと思うのですが、
問題ないですか?
(一度バキュームでDBが壊れたことがありますので。。。)

772 :名無しさん@お腹いっぱい。 :02/12/19 02:46
7.2 以降にして
vacuum analyze
するのはどうでしょ。運用中でも止める必要はないし。
遅くなるけど。

バックアップして戻すのは別な次元の話だと思う。

773 :名無しさん@お腹いっぱい。 :02/12/19 03:07
ありがとうございます。バージョンアップなどは
ちょっと不可能です。
お客さまのサーバだし、他のソフトとの絡みもあるし。

バックアップから戻すと、結局バキュームと同じ効果があるらしいのです。
それも危険ですかね。。

774 :名無しさん@お腹いっぱい。 :02/12/19 03:39
6.5.3 にして vacuum


775 :771 :02/12/19 23:57
35 :29 :2001/06/14(木) 18:02 ID:???
環境。
Apache/1.3.20
PHP Version 3.0.18-i18n-ja-2
PostgreSQL 6.5.3

38 :名無しさん@お腹いっぱい。 :2001/06/18(月) 00:16 ID:4Y6BFwKU
>>35
そのPostgreのバージョンはvacuumするとデータが壊れちゃう
バージョンだけど、そのせいじゃないの?

vacuumかけると、データが壊れるらしい。。。





とあります。私のもそうです。

776 :名無しさん@お腹いっぱい。 :02/12/20 03:06
ていうか、MySQLの本家のML読んでると、データが壊れたとか無くなったとか、
そういう話ばっかりなんですが、おまいら、本当に業務系で使えますか?


777 :名無しさん@お腹いっぱい。 :02/12/26 09:18
PostgreSQL7.3 PHP4 REALbasic4.5.2 MacOSX10.2.3でデーターベースを作成してます。
そこで、JPEG画像を使ったdbも作成しようと考えているのですが、PostgreSQL側に
どんなタイプでどういう風にすればいいのか教えて下さい。

778 :bloom :02/12/26 10:03



http://www.agemasukudasai.com/bloom/

779 :名無しさん@お腹いっぱい。 :02/12/26 12:00
>>777
でっかいバイナリデータをLOB型としてDBに入れるか、ファイルとして保存
するかは悩ましいところですよね。


780 :名無しさん@お腹いっぱい。 :02/12/26 12:14
>>779
ヲレ的に中身までなめる必要がないものを DB に入れるのにはものすごく抵抗がある。
ただ、ファイルにすると PostgreSQL だけで管理が完結しなくなるのでちょっと
面倒になるけど。

781 :  :02/12/29 19:15
>>780
ファイルパスだけの管理にとどめて、実ファイルはバッチ的にサクっとやっちゃうという手法とればよいよ。
(旧ファイルパスの情報をselectしてファイルを削除
 →成功したら旧ファイルパスの情報をdelete
  ファイルがなければ成功扱いとする
 これを1ファイルごとにcommitしながらやる)
って、銀行のオンライン処理っぽくなるのでメンドーだけど。


782 :名無しさん@お腹いっぱい。 :02/12/29 21:43
>>777
Base64でエンコードして TEXT 型で保存してる。
ラージオブジェクト使った事もあるが、
トランザクションブロックにしなくちゃならなかったのでやめた。

最初は base64じゃなくて uuencode でも使おうかと思ったが、
エスケープしなきゃならない文字が出てきてしまうのでやめた。

783 :名無しさん@お腹いっぱい。 :02/12/31 01:14
>>781
それがまさに「PostgreSQL だけで管理が完結しなくなる」ってことやん。
実データの commit や delete などを DB 以外の場所で行うんだから。

784 :名無しさん@お腹いっぱい。 :02/12/31 01:57
>>780
どのRDBMSもLOBはそれに適した実装になっているはずだから、あまり
抵抗はないなぁ。TEXTに突っ込むのはちょっと乱暴だと思うけど。
Postgresの場合、結局のところ>>781をDBMSの管理下で行うような
実装になっていたよね。

785 :名無しさん@お腹いっぱい。 :02/12/31 02:06
psqlコマンドラインからのクエリは成功するのに
Pg使ってPerlで$conn->exec("$query")するとPGRES_FATAL_ERRORになります。
クエリはselect * from table where keyword='hoge'くらいの単純なものです。
こういう場合のデバッグってどうやったらいいですか?

786 :名無しさん@お腹いっぱい。 :02/12/31 09:31
>>785
$conn->errorMessageは見た?

787 :名無しさん@お腹いっぱい。 :02/12/31 12:58
>>786
ありがとうございます。
アクセス権の設定のミスでした。

788 :名無しさん@お腹いっぱい。 :02/12/31 16:00
http://wuffs-moviedb.sourceforge.net/
http://vcdphp.codehack.de/
みたいなソフトってmysql対応のものばっかだけどやっぱ
海外ではmyが主流なんだね。。

789 :779 :03/01/01 00:26
>>784
普段はDBに格納しておくとして、ファイルシステム上に存在しているほうが
処理しやすいデータの場合にも対応できるのでしょうか。


790 :名無しさん@お腹いっぱい。 :03/01/01 01:15
ファイルシステム上に存在している方が処理しやすいというのはどういうのだろう?
DBMSを介さずに他のプログラムからアクセスしたいとか、ランダムアクセスしたい
とかいう場合はLOBは向いていないと思うが。

791 :名無しさん@お腹いっぱい。 :03/01/06 23:32
>>782 のやり方のいいところは、pg_dump で何も考えなくても
他のマシンに DB をエクスポートできることかな。

792 :名無しさん@お腹いっぱい。 :03/01/08 15:44
>>782 >>791
textに突っ込むくらいならbytea型でやればいいと思うんだが。

どちらでやろうが、select時にlibpqが大量のメモリを必要とする。
いまどき画像ファイル程度で簡単にはメモリ不足にならんだろうが、
あまり大きい結果セットにならないように気をつけようね。

793 :名無しさん@お腹いっぱい。 :03/01/08 16:15
>>790
DBMSを介さずに他のプログラムからアクセスしたいっていうのは、
web システムなんかじゃよくあるシチュエーションじゃないか?

794 :792 :03/01/08 22:55
>>793
WebだとApp鯖がクラスタ構成とることが多いから、DBで集中管理しつつ、
各ノードに必要に応じてローカルファイルとして展開するってのが一般的では?

795 :名無しさん@お腹いっぱい。 :03/01/08 23:21
>>793
だからLOBにするかしないかってのは要件次第ってこと。

796 :名無しさん@お腹いっぱい。 :03/01/09 11:41
>>794
web サーバに SAN なり NFS なりでファイルシステムをマウントすることもあるぞ。


次100 最新50 (10:00PM - 03:00AM の間一気に全部は読めません)

read.cgi ver5.26+ (01/10/21-)