PostgreSQLに大量のデータを登録する際はINSERTを使って一件づつ処理するより、COPYを使って一気に登録した方が実行速度が(かなり)速いです。 そこでPHPでもCOPY文を使ってみましょう。 pg_copy_fromを使う 登録するデータが配列に入っているならpg_copy_fromだけで一気に処理できます。 配列の1要素が1レコードに対応しています。1要素内では各カラムをデリミタ(デフォルトは”\t”)で連結します。 <?php $values = array(); $values[] = "1\tname1"; $values[] = "2\tname2"; $values[] = "3\tname3"; $db = pg_connect("dbname=hogedb"); pg_copy_from($db, 'table',
Webサーバが一台の場合はPHPが処理するよりもデータベースで処理した方が早い。 あと絶対的な時間。例えばPHPで計算して一ページ表示するのに1秒かかりDBで計算して0.1秒かかる場合は、Webサーバが複数あってもどっちにロジックを持って行くかは考えもの。PHPで集計処理を行うとしても、結局DBにselect文を発行する回数は増えるわけだし。 まぁ同時アクセスの数だなぁ。新規のネットショップ程度なら一秒間に何十人もアクセスしてくることは無いと思うのでDB側で処理するのがいいかと。 ただAjaxを使ってる場合は、一人が一ページ表示中に何度もリクエストを送ることになるのでそれも考慮しないといけない。 というわけで、うちの場合は同時アクセスが少ないかつ重い処理を行うのでDB側で計算するように修正。 主な変更項目。 アクセラレータを利用する foreach を減らす 圧縮転送を行う 文字コードにE
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く