まえがき
また新しい週が始まりました、皆さん、良い月曜日をお過ごしください。
転職や家探しなどが立て続けにあったため、最近は一ヶ月以上更新が止まっていました。すべてが解決したので、安心してコーディングできます。
さて、早速、新しい旅を始めましょう。最近「MySQL Technology Insider - InnoDB Storage Engine」という本を読んでいるので、記録しておきたいと思います。
全体的なアーキテクチャ図
全体を理解するために、まず MySQL のアーキテクチャ図を見てみましょう。 MySQL は主に、ネットワーク接続層、サービス層、ストレージ エンジン層、物理層の 4 つのアーキテクチャ層に分かれています。私たちが通常作成する SQL ステートメントと SQL ステートメントの最適化はすべてサービス層にあり、実際には、SQL ステートメントが期待どおりの結果に従って実行されるように、特定の原則に従っています。
各部の紹介
ネットワーク接続層
は主に接続管理、認可認証、セキュリティなどを担当します。各クライアント接続はサーバー上のスレッドに対応します。接続ごとにスレッドが作成および破棄されるのを避けるために、サーバー上でスレッド プールを維持します。クライアントが MySQL サーバーに接続すると、サーバーはクライアントを認証します。ユーザー名とパスワードを介して認証することも、SSL 証明書を介して認証することもできます。ログイン認証後、サーバーはクライアントに特定のクエリを実行する権限があるかどうかも検証します。この層は MySQL に固有のテクノロジーではありません。
サービス層
この層は、クエリ キャッシュ、パーサー、解析ツリー、プリプロセッサ、クエリ オプティマイザーを含む MySQL の中核です。
- #クエリ キャッシュ
- パーサーとプリプロセッサ
- クエリ オプティマイザー
- 実行計画
注: ストレージ エンジンはテーブル用であり、ライブラリ用ではありません。つまり、同じライブラリ内の異なるテーブルは異なるストレージ エンジンを持つことができます。
create table test1( a INTEGER, b varchar(10) )ENGINE=MyISAM;MySQL の関連ディレクトリに移動して、実際に保存されているコンテンツを確認すると、それが 3 つのファイルに対応していることがわかります。
create table test2( a INTEGER, b varchar(10) )ENGINE=INNODB;実際に保存されているコンテンツを見て、それがこのファイルに対応していることを確認してみましょう。
- ユーザーはまず、Navicat などのクライアントを介してサーバーとの接続を確立します。認証にはユーザー名とパスワードが必要ですが、認証には SSL 証明書を使用することもできます。
- ログインに成功すると、MySQL は、対応する権限に基づいて、ロールに一部のテーブルに対する権限があるかどうかを判断します。
- 関連する権限がある場合、ユーザーがクエリ select ステートメントを送信すると、MySQL は最初にキャッシュにクエリを実行します。このステートメントのキャッシュが既に存在する場合は、キャッシュが直接返されます。そうでない場合は、キャッシュが直接返されます。 , 以下の処理を実行します。更新、新規挿入、または削除の場合、キャッシュは照会されず、次のプロセスが直接実行されます。
MySQL は SQL ステートメントをツリーに解析し、キーワードが正しいかどうか、キーワードの順序が正しいかどうか、テーブル名が正しいかどうか、フィールドが正しいかどうかなどを検証します。 、など。認証に失敗した場合は、直接エラーが返されます。認証に成功した場合は、そのまま次の処理に進みます。
MySQL は、複数の SQL ステートメントが同じ意味を表現する可能性があるため、解析ツリー上でクエリの最適化を実行しますが、消費される時間は大幅に異なる可能性があります。したがって、MySQL はテーブルのストレージ エンジンに最適なステートメントの実行を見つけます。つまり、対応する実行プランを生成します。
上記で生成された実行プランを使用して、ストレージ エンジン層インターフェイスを呼び出します。これは私たちが通常使用する Explain であり、インデックスがインデックス化されているかどうか、消費された時間、その他の情報を確認するために使用できます。
さまざまなストレージ エンジンが、対応する物理ストレージの場所に移動し、対応するデータを検索し、カプセル化して結果を返します。
結果セットが取得され、それが select ステートメントである場合、MySQL は次回同じ操作を実行することによるリソースの消費を避けるために結果をキャッシュに入れ、それを返します。クライアントの結果: この時点で、SQL ステートメントの実行プロセスは終了です。
MySQL 関連の技術記事の詳細については、MySQL チュートリアル 列にアクセスして学習してください。
以上がMySQL の全体的なアーキテクチャに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

mysqlviewshavelimitations:1)supportallsqloperations、制限、dataManipulationswithjoinsorubqueries.2)それらは、特にパフォーマンス、特にパルフェクソルラージャターセット

reperusermanmanagementInmysqliscialforenhancingsecurationsinginuring databaseaperation.1)usecreateusertoaddusers、指定connectionsourcewith@'localhost'or@'% '。

mysqldoes notimposeahardlimitontriggers、しかしpracticalfactorsdeTerminetheireffectiveuse:1)serverconufigurationStriggermanagement; 2)complentiggersincreaseSystemload;

はい、それはssafetostoreblobdatainmysql、butonsiderheSeCactors:1)Storagespace:blobscanconsumesificantspace.2)パフォーマンス:パフォーマンス:大規模なドゥエットブロブスメイズ階下3)backupandrecized recized recized recize

PHP Webインターフェイスを介してMySQLユーザーを追加すると、MySQLI拡張機能を使用できます。手順は次のとおりです。1。MySQLデータベースに接続し、MySQLI拡張機能を使用します。 2。ユーザーを作成し、CreateUserステートメントを使用し、パスワード()関数を使用してパスワードを暗号化します。 3. SQLインジェクションを防ぎ、MySQLI_REAL_ESCAPE_STRING()関数を使用してユーザー入力を処理します。 4.新しいユーザーに権限を割り当て、助成金ステートメントを使用します。

mysql'sblobissuitable forstoringbinarydatawithinarationaldatabase、whileenosqloptionslikemongodb、redis、andcassandraofferferulesions forunstructureddata.blobissimplerbutcanslowdowdowd withwithdata

toaddauserinmysql、使用:createuser'username '@' host'identifidedby'password '; here'showtodoitsely:1)chosehostcarefilytoconを選択しますTrolaccess.2)setResourcelimitslikemax_queries_per_hour.3)usestrong、uniquasswords.4)endforcessl/tlsconnectionswith

toavoidcommonMonmistakeswithStringDatatypesinmysql、undultingStringTypenuste、choosetherightType、andManageEncodingandCollationsEttingtingive.1)Usecharforfixed-LengthStrings、Varcharforaible Length、AndText/Blobforlardata.2)setCurrectCherts


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール
