mysqlの起動プロセスを解析する

怪我咯
リリース: 2017-04-01 10:46:42
オリジナル
1133 人が閲覧しました

ある日、mysql カーネルを理解していなかった 2 人は、コードをデバッグして情報を探す代わりに、mysql カーネル コードを理解したいと考えていました。カーネルが分からないので考えながら検証します。 使用した mysql コードは 5.1.7 で、デバッグ環境は Windows プラットフォームの vs2003 です。 Bingxi: 「アレックス、mysql の起動プロセスはどのようになると思いますか? 銀行
の動作
を例に考えてみましょう。」 Alex: 「そうですね、Bingxi。朝、銀行は準備をします。」ようこそ、mysql にも handl
e_connections_sockets 関数があります。この関数は、各ユーザーがアクセスすると番号を取得します。その後、業務が処理されます。「

Bingxi: ああ、ここには 2 つの可能性があります。1) ユーザーが来たらすぐに電話を処理するスタッフを割り当てる、2) キューに登録されている番号の人を呼び出す前者のシナリオは、リクエスト量が多く、応答速度が特に速い状況に適していますが、次のような場合もあります。割り当ての制限、いわゆる最大接続数の制限はインターネット業界ではよくあることですが、これも同様にマシンの負荷が非常に大きいことがわかります。各ビジネスが複雑で (リソースを消費する SQL ステートメント)、同時に処理される場合、この状況は 2 番目の方法の方が適切です。 : "そうです。Mysql は前者を選択します。Oracle は 2 つの方法から選択できます。スレッド
キャッシュ

を設定し、キャッシュが利用可能な場合はスレッドを起動し、そうでない場合は新しいスレッドを作成します。"

Bingxi: 「そうですね、ラオヤン、銀行がこの期間中顧客にサービスを提供するサービススタッフを割り当てていることを理解していますか。その中にはユーザーのコマンドを待っているコードセグメントがありますが、それは100 元を入金して 1 元を引き出し続け、セキュリティに連れ去られた人のように、ネットワークによって殺される可能性があります。機能を使用すると、応答は、口座開設、入金など、さまざまな顧客のリクエストに応じて処理されます。」
pthread_handler_t handle_one_connection(void *arg)

{

    while (!net->error && net->vio != 0 &&

           !(thd->killed == THD::KILL_CONNECTION))

    {

      net->no_send_error= 0;

      if (do_command(thd))

       break;

    }

}
ログイン後にコピー

以上がmysqlの起動プロセスを解析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート