PHPとMySQL連携でメモリ不足

PHPを使ってMySQLの操作をしてるときに、データベースのレコード数が少ないときはいいんですが、ある一定以上のレコードを抽出するときにWWWサーバ側でメモリ不足のエラーが出ることがあります。

私の場合は、データベースから抽出したレコードを全て配列に格納してから処理をしているんですが、この配列変数で容量オーバーしてメモリ不足となることがありました。

対策としては、

1.抽出件数をLimitで制限して、whileなどで繰り返し処理を行う。

2.mysql_query→mysql_fetch_assocの流れではなく、mysql_unbuffered_query→mysql_fetch_assocという流れで処理をする。

1については、単純に一度に扱うデータ量を減らしています。

2のmysql_unbuffered_queryは、結構PHPのマニュアル本には載ってないことが多く私は知らなかった関数でした。