2

Win XP に WAMP 2.0 サーバーをインストールしています。Apache バージョン: 2.2.11 PHP バージョン: 5.3 MySQL: 5.1.36

mysql には約 11 個のテーブルがあります。私の Web アプリケーション (HTML/Jquery/PHP/MySQL) を実行するたびに、2 つのテーブルで約 100 行が埋められます。 my.ini ファイルで 32M まで)

いずれかのテーブルの行数が 1500 を超えるまで、アプリケーションは約 3 週間正常に動作します。

次に、httpd のクラッシュ メッセージ (Apache httpd でエラーが発生したため、閉じる必要があります) が表示され、不正なメモリ参照が表示されます。以下のいくつかのログを見つけてください。

szAppName : httpd.exe     szAppVer : 2.2.11.0     szModName : php5ts.dll     
szModVer : 5.3.0.0     offset : 0000c309     


C:\DOCUME~1\blrcom\LOCALS~1\Temp\WERc677.dir00\httpd.exe.mdmp
C:\DOCUME~1\blrcom\LOCALS~1\Temp\WERc677.dir00\appcompat.txt

2 つのテーブルをクリアすると (1500 > 行)。それでも問題は見られます。

PDO PHP を使用してテーブルを更新しています。

これはブロッカーになりつつあるので、誰でも私を案内できますか。

よろしく、 ミトゥーン

4

2 に答える 2

2

問題:

2GB のファイル サイズの壁にぶつかっているのではないかと疑っています。セットアップに関する 2 つの問題:

  • 最初の問題: これを Windows で実行しています。
  • 2 番目の問題: これを Windows で実行しています。:-)

理由:

冗談はさておき、Mysql はデータをルート フォルダ (たとえば、C:\Program Files\MySQL\MySQL Server 5.0\data) に保存します。各サブフォルダーは、MySQL のインスタンスの db に対応します。.frm各フォルダー内には、テーブルに対応する拡張子を持つファイルがあります。アップロードを保存しているテーブルが 2 GB の制限に近づいているかどうかを確認します。最大 20 Mb * 1500 行のアップロードを格納する列があることを考慮すると、これはおよそ 2 GBです(ほとんどのファイルが 20 MB より小さいと仮定します)。ファイルシステムとOSの. これは、人々が自分の見通しに問題を抱えているのと同じ理由です。電子メールを分類したり整理したりしないためです。

解決:

3 番目の問題 - バイナリ データを db に格納しています - 決して良い考えではありません。それをディスクに保存し、それへの参照(名前またはパス)をデータベースに保持します。または、より大きなファイル サイズをサポートする **nix* システムに移行する場合は、現在の設定をしばらく維持できます。ただし、そのサイズのバイナリ データを DB に直接格納することは、依然として悪い考えです。また、DB 検索が遅くなり、バックアップが非常に遅くなります (MySQL には簡単な増分バックアップがないため)。

それが役立つことを願っています。

編集:

WAMP を使用しているため、言及するのを忘れていました。MySQL フォルダーは WAMP インストール フォルダーにあります。デフォルトでは c:\wamp\mysql\data にあるはずだと思いますが、よく覚えていません。私は通常、Windows で XAMMP を使用します。

于 2009-11-30T23:24:10.220 に答える
1

これが起こっている理由はたくさんあります。すべての 20 MB オブジェクトの配列をメモリに保持していますか? それが大きくなるにつれて、Apache のプロセスごとのサイズがメモリ不足になるまで増加する可能性があります。

于 2009-11-30T22:38:10.330 に答える