ホームページ  >  記事  >  データベース  >  mysql はシングルスレッドですか、それともマルチスレッドですか?

mysql はシングルスレッドですか、それともマルチスレッドですか?

青灯夜游
青灯夜游オリジナル
2020-09-28 09:58:467408ブラウズ

mysql はマルチスレッドです。 Mysql は単一プロセスのマルチスレッド データベースであり、innodb には約 3 種類のスレッドがあります: 1. マスター スレッド、2. 書き込みリクエストを非同期で処理するために使用される IO スレッド スレッド、3. UNDO ログを削除するために使用されるパージ スレッド スレッド。

mysql はシングルスレッドですか、それともマルチスレッドですか?

(推奨チュートリアル: mysql ビデオ チュートリアル )

mysql は、単一プロセスのマルチスレッド データベースです。 innodb そこにはおそらく次のタイプのスレッドがあります:

(1) マスター スレッド: これはメイン スレッドであり、非常にコアです。その目的は主に、いくつかの定期的なタスクを実行することです。 innodb のバージョンの違い 機能が異なります。これが最も古いバージョンです。初期の innodb マスター スレッドには 2 つの頻度タスクがあり、1 つは 1 秒に 1 回、もう 1 つは 10 秒に 1 回です。

毎秒作業:

1. ログを更新します;

2. 最大 100 のダーティ ページを更新します;

#3. 挿入バッファをマージします;

4. アイドル状態の場合は、バックグラウンドに切り替えます。

実際、最も重要なのは最初の 2 つです。また、ログのリフレッシュのみを毎回実行する必要があり、残りは条件が満たされた場合にのみ実行されます。たとえば、ダーティ ページのリフレッシュは、キャッシュ内のダーティ ページの割合がしきい値を超えた場合にのみリフレッシュされます。

10 秒ごとに作業:

1. ログを更新します;

2. ダーティ ページを更新します;

3. 元に戻すログを削除します;

4. マージ挿入バッファ

(2) IO スレッド: 主に書き込みリクエストの非同期処理に使用されます。

(3) パージ スレッド: は、UNDO ログを削除するために使用されます。これは、この問題をマスター スレッドから分離する後続の innodb バージョンです。

最後に、innodb のメモリ マップ:

mysql はシングルスレッドですか、それともマルチスレッドですか?

関連する推奨事項:

php training

以上がmysql はシングルスレッドですか、それともマルチスレッドですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。