PHPで、Postgresに対して大量(3万件前後)のINSERT、
もしくはUPDATEを繰り返すバッチ処理を実装しております。
当方、PHP歴が浅く、PHPで大量件数を取り扱う際の注意点やTIPSなどの知識が
乏しく、処理速度の改善や、メモリ使用量の軽量化などを行いたいのですが、
どこから手を付けてよいのやら取っ掛かりすら掴めない状況です。
そこで、有識者の皆様にお伺いしたいのですが、
PHPで大量件数を処理するにあたって、
1.処理速度の改善に役立つTIPS
2.メモリ使用量の軽量化に役立つTIPS
この2点をお伺いしたく、何卒宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
1.処理速度
単純にINSERTで済む場合はCOPY文やpsqlによる手続きが便利かも知れません。
UPDATEとINSERTがどちらも含まれる場合、最初にINSERTとUPDATEの二つに分けてしまった方が早いかも知れません。
SELECT primary_column FROM table_name WHERE primary_column IN (プライマリーキーの配列3万前後);
とかで。
PRIMARYキーが40バイトだったとしても、1MB程度のメモリ量で済みそうです。
2.メモリ使用料について
3万件のデータはファイルに入っていると思うので、単純にfopen+fgetsにしてやればそれほどメモリは使わないんじゃないかと思います。
memory_get_usage()関数を使えれば、実際にメモリ量を見てやると良い気がします。
メモリやPHPの処理よりも、Postgre側やCPU、iowaitの方が厳しくなりそうな気がしますし、問題が発生したら考えてみてはいかがでしょうか。
PHP上ではout of memoryかset time limitくらいでしか止まらない気がします。
マシンスペック次第ではCPUが100%行きそうですね。
なんか取り止めが無かったのですが、そんなところでいかがでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- 物理学 統計力学における平衡状態の定義について 4 2022/12/27 01:47
- CPU・メモリ・マザーボード メモリが使用可能にならない 3 2022/08/13 17:13
- デスクトップパソコン 仕事で使うPC 10 2023/04/23 00:27
- 農学 化学の質問です。 米ヌカの自然発火について。 米糠を大気中に晒して少量の水数滴垂らして放置すると着火 2 2022/10/25 19:28
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- 医療・安全 「日本のコロナ対策はワクチンに偏り過ぎている」 と思いませんか? 率直に疑問を感じます。 現在、有効 5 2022/09/02 19:30
- バックアップ Windows11パソコンのデータを数クリックで完全に引っ越しするにはどうすれば良いでしょうか? 5 2022/10/11 14:08
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
メモリのセグメント違反の解決...
-
「ヒープサイズの設定」て何?
-
ファイルマッピング関数で失敗
-
メモリが不足しています(VBA)
-
「memcpy」と「strcpy」について
-
GetAdapterInfoによりマックア...
-
シェル(perl)が使用するメモリ...
-
計算速度が遅い
-
【C言語】再帰が時間がかかる...
-
<jsp:include>の属性、flushに...
-
メモリ不足
-
ルネサスマイコン(R8C) ビルド...
-
プログラム領域の算出方法
-
移動可能メモリ
-
Javaでメモリ不足を引き起こす方法
-
sil_rew_memのメモリアクセスに...
-
大容量のメモリ確保をスワップ...
-
エクセルのメモリ使用状況/Appl...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
C言語における再帰呼び出しの...
-
「memcpy」と「strcpy」について
-
メモリが不足しています(VBA)
-
大容量のメモリ確保をスワップ...
-
「ヒープサイズの設定」て何?
-
メモリ不足
-
メモリのセグメント違反の解決...
-
EXCEL-VBAにてADOのレコードセ...
-
ファイルマッピング関数で失敗
-
【C言語】再帰が時間がかかる...
-
closeとメモリの開放について
-
ExcelのVBAでメモリ解放できない
-
エクセルのメモリ使用状況/Appl...
-
エクセル キャッシュメモリー...
-
C#のOutOfMemoryException発生...
-
Bitmapを重ね合わせる方法
-
VB.netでUSBメモリの固有I...
-
バッチファイルでの実行EXEのメ...
おすすめ情報