0

MySQLでパフォーマンスの問題を引き起こすPHPアプリケーションを入手しました。何が起こるかこれは次のとおりです。データベースエントリが特定の量を拡張した後。PHPページを300秒間ランダムにタイムアウトし始めます。

コードは乱雑で時代遅れであり、基本的にははるかに効率的な多くのクエリを実行しているため、コードを書き直す必要があることはわかっています。

しかし、私はこれを引き起こすことができるものと、これに対する短期的な解決策があるかどうかについて非常に興味があります。phpアプリケーションは完全に機能しますが、クエリの結果が正常に動作するページを参照した後、読み込み時間が300秒に変わることがあります。その後、データベースの結果を含むページが完全に表示されます。その後、いくつかのページを再度表示できるようになり、その後、プロセスがランダムに最初からやり直されます。ページが読み込まれている300秒間、SQLプロセスリストには、クエリが添付されていない状態で、読み込み時間全体にわたってコマンド「スリープ」が表示されます。

4

2 に答える 2

0

プロセスリストに実行中のクエリが表示されない場合、問題はおそらくMySQLではなくアプリケーションにあります。これを見てください:プロセスがLinuxで実行されているPHPスクリプトをどのように見つけることができますか?

于 2013-03-06T15:19:51.747 に答える
0

問題が本当にMySQLに関連していると仮定すると、MySQLサーバーにより多くのメモリを割り当てて、パフォーマンスが向上するかどうかを確認できます。ここで「巨大な」my.cnf構成を参照してください。

http://fts.ifac.cnr.it/cgi-bin/dwww/usr/share/doc/mysql-server-5.0/examples/my-huge.cnf.gz

また、InnoDB機能は必要ないが、データベースがInnoDBである場合は、MyISAMに切り替えて、パフォーマンスを向上させることができます。

また、セッションのロックと衝突を確認する必要があります。これにより、タイムアウトが発生する場合があります。セッションを閉じるかスクリプトが終了するまでセッションファイルはロックされたままになるため、データの読み取り/書き込みが完了したらすぐにセッションを解放する必要があります。

于 2013-03-06T15:25:17.063 に答える