[PHP-users 3099] Re: 件数制限
Nakamura Kazuto
php-users@php.gr.jp
Wed, 24 Oct 2001 18:34:42 +0900
中村です。
>> >けで、件数毎に区切っての閲覧はできていない状態です。そこ
>> >でブラウザ上に”前へ”、”後へ”ボタンを作って、そのボタ
>> >ンを押すタイミングで前の10件、後の10件というように件数を
>> >区切って表示して行きたいのです。
>> これに関しては、sql云々の問題ではなく、表示させるスクリプトの
>> 問題ではないですか?
>自分の経験に基づくのですが、一旦DBから条件に一致する全レコードを取得し、
>その中でオフセットを決めて取り出すという方法は、レコード数が100件やそこ
>らの場合は良いのですが、これが1万件などになると、メモリとネットワークト
>ラフィックにかなりの負荷をかけることになりました。
>なもので、現在は必ずSQL側で制限を掛けて抜き出す方法を使用しています。
自分もメモリallocが巨大に膨れ上がるのが一番のボトルネックと思って
居るのですがみなさんはどのように処理されているのでしょう?
自分は総件数をまず取得し、それが大丈夫となった場合に改めて本データ
の取得をするという方法を取っていますが、2度SQLを発行するという点に
満足していません。
$buff = "select count(*) from table where 〜";
$result = pg_Exec($conn,$buff);
if (pg_Result($result,0,0) > 100) { echo "Too many hits."; exit;}
$buff = "select * from table where 〜 offset 〜 order by 〜 ";
$result = pg_Exec($conn,$buff);
:
--
中村 和人 kazuto@sainet.or.jp