MySQL の「データ送信中」状態を理解する
SHOW PROCESSLIST を実行するとき。 MySQL でクエリを実行すると、State 列に「データ送信中」ステータスが表示される場合があります。このステータスは、MySQL がクライアントへのデータ送信を開始したことを示します。ただし、このプロセスには最大 1 時間など、かなりの時間がかかる場合があります。
一般的な想定に反して、「データの送信」はクエリが完全に処理されたことを意味するものではありません。代わりに、クエリの要件を満たすために MySQL が依然としてディスクまたはメモリからデータを取得していることを意味します。このデータは、テーブル、インデックス、一時テーブル、または並べ替え結果に関連している可能性があります。
たとえば、100 万レコード (インデックスなし) のテーブルがあり、必要なレコードが 1 つだけである場合、 MySQL はテーブル全体をスキャンしている間も「データ送信中」ステータスを表示します。これは、要求されたレコードを積極的に検索しているにもかかわらず、MySQL がまだデータを送信していないためです。
MySQL 8.0.17 以降の変更点
MySQL 8.0.17 以降、「データ送信中」状態は個別に報告されなくなりました。代わりに、「実行中」状態に組み込まれます。この変更により、ステータス情報が簡素化され、進行中の処理アクティビティがより適切に反映されます。
以上がMySQL の「データ送信中」状態とは実際には何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。