4

サーバーの 1 つで奇妙な問題が発生しました。遅延した mysql 挿入があることがわかります

+--------+----------------+-----------+------------------+----------------+------+--------------------+------------------------------------------------------------------------------------------------------+
| Id     | User           | Host      | db               | Command        | Time | State              | Info                                                                                                 |
+--------+----------------+-----------+------------------+----------------+------+--------------------+------------------------------------------------------------------------------------------------------+
| 219586 | DELAYED        | localhost | XXXX             | Delayed insert | 202  | Waiting for INSERT |                                                                                                      |

めったに使用されないデータベースで。MySQL マニュアルから理解したところによると、これらの挿入は、使用頻度の高いデータベースを最適化してバッチ/ブロックで挿入を書き込むために、他の挿入を待機します。残念ながら、この方法は大量のメモリを消費し、ほとんど使用されないデータベースで使用すると非常に非効率的であると彼らは言います。この特定のケースでは、そのデータベースに対して 1 日に 10 ~ 20 件のクエリしかないため、遅延が非常に大きくなり、最大で 1 日かかります。他のデータベース/ユーザーにも同様の問題があり、それらを合計すると、MySQL のメモリ使用量と CPU に負荷がかかっているようです。

遅延クエリが遅延するのを防ぐ方法はありますか? emを通常のクエリのように振る舞わせたいですか?

前もって感謝します!

乾杯、ベネチアン。

4

2 に答える 2

5
  1. FLUSH TABLES または 'KILL 219586' を実行して、そのスレッドにジョブを強制的に完了させて終了させることができます
  2. max_delayed_threads=0DELAYED 機能を完全に無効にするために、構成ファイルに設定し、インスタンスを再起動します。
  3. ドキュメントを読む - フォーラムで 6 時間待つよりも高速です
于 2009-07-02T22:14:48.433 に答える
2

そのスレは気にしないでください。将来挿入が遅れた場合に備えて、そのまま保持されます。実際には何もしていません..

于 2009-07-05T20:48:50.870 に答える