MySQLの不可解なエラー
お世話になります。
PHP4.3.7で、MySQL3.23.56を使ったアプリケーションを作っておりますが、ある決まった場所にてSQLエラーが発生し、さらにエラー発生の何度かに一度、MySQLサーバーが停止してしまいます。
ここで、SQL構文に間違いがあるのでしたら、話は早いのですが、phpMyAdminから同じSQLを流しても問題なく実行されますし、何より、毎回エラーになるわけでもないのです。
INNER JOIN、LEFT JOIN で4テーブルほど結合していましたが、エラーが気になったため、結合をやめ、3つのマスタテーブルをそれぞれ取得し、連想配列を使って主テーブルのデータとPHPで連結してみました。
が、結局、この機能のところでは、数回に一回、エラーを出してしまいます。
こういった現象は何が原因と考えられますか?
SQLを変更しても同じ現象が出るため、ここにSQL文を記述しても参考になるとは思いませんが、念のため掲載しておきます。
$SQL =<<<_SQL_
SELECT clm1, clm2, clm3, clm4,
clm5, clm6, clm7, clm8
FROM TABLE1 ORDER BY clm1
LIMIT 0,50
_SQL_
$res = mysql_quert($SQL);
とし、$resが取得できない場合にそのSQLのログをとりました。(このSQL文の結果が0件になることは皆無です)
全く何の変哲もない基本的なSQL文に変更したので、これが原因とはとても考えられません。
TABLE1 は、かなりの頻度でUPDATEがかかる、アプリケーションの主になるテーブルで、ユーザー情報を保持しています。トランザクション制御を行うので、BerkeleyDB です。
もしかして、トランザクションの頻度が問題なのでしょうか?
しかし、それによって結果の取得に失敗するだけなら、エラー表示等でやり直すように促せばいいのですが、それによってしばしばデータベース停止になるのでは、話になりません。
ご意見・ご指導の程よろしくお願いいたします。
お礼
御回答有難うございますm(__)m 結局、わからない専門用語につきあたってしまうのは避けられないんですね・・・ 教えていただいたサイト、参考になりました(^^ どうも有難うございます