memo.xight.org

日々のメモ

エラー Allowed memory size of XXXXXXX bytes exhausted

Summary

/var/log/apache/error.logに以下のメッセージを発見.

Allowed memory size of 8388608 bytes exhausted (tried to allocate 133 bytes)

原因

PHP の メモリリミットを超えたメモリを扱おうとした.

対策

/etc/php4/apache/php.ini
memory_limit の値を増やす.

memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)

;memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)
memory_limit = 16M

反省

富豪的プログラミングをやりすぎ,このエラーに遭遇.
memory_limitの値を増やしてもいたちごっこな気がするので,ロジックを再考してみる.

Reference

trustBee - パソコンQ&A : Re:compose.php3 のエラー
http://www.trustbee.com/bbs/?i=bee&a=7&t=421&m=2178

シーケンスと採番テーブルと欠番探索

・シーケンス
アプリケーションで採番について考えなくて済む.絶対に重複しない.
データを追加するまで、与えられる番号が分からない.欠番が起こる.

・採番テーブル
データを追加する前に与えられる番号が分かる.
管理が大変.バグの要因になりがち.設計者の手腕にかかっている.

・欠番探索
データを追加する前に与えられる番号が分かる.絶対に重複しない.欠番が起こらない.
データ件数が多いと採番に時間がかかる (100万件くらいは余裕らしい)

Reference

@IT - Database Expert - シーケンスと採番テーブルの選択
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15927&forum=26&5