推奨 (無料): SQL
Zero、データベース ドライバー
- MySQL ドライバーは、最下位レベルでデータベースに接続するのに役立ちます。接続が確立されて初めて、その後の対話が可能になります。
1. データベース接続プール
- データベース接続プールには、Druid、C3P0、DBCP が含まれます
- 接続プールを使用すると、スレッドを常に作成および破棄することによるオーバーヘッドは、有名な「プーリング」のアイデアです。スレッド プールであっても、HTTP 接続プールであっても、その存在がわかります。
2. SQL インターフェイス
- MySQL でリクエストを処理するスレッドは、リクエストを取得した後に SQL ステートメントを取得し、それを処理のために SQL インターフェイスに渡します。
3. クエリ パーサー
- #SQL インターフェイスによって渡された SQL ステートメントを解析し、MySQL が理解できる言語に変換します。
4. MySQL クエリ オプティマイザー
- MySQL は、最小コスト原則 # に基づいて、対応するインデックスの使用を選択します。 コスト = IO コスト CPU コスト
- IO コスト: つまり、ディスクからメモリにデータをロードするコストです。デフォルトでは、データ ページを読み取る IO コストは 1 です。 , MySQLはデータをページという形で読み込む、つまり、あるデータを利用する際に、そのデータだけでなく、そのデータに隣接するデータもメモリ上に読み込むという有名なプログラムです。局所性があるため、MySQL は毎回ページ全体を読み取り、1 ページのコストは 1 です。したがって、IO のコストは主にページのサイズに関係します
- CPU コスト: データをメモリに読み込んだ後、データが条件を満たしているかどうかを検出することも必要ですソートやその他の CPU 操作のコストは明らかに、行数に応じて、デフォルトでレコード検出のコストは 0.2 に関連します。 MySQL オプティマイザは、
5 の実行コストが最小となる「IO コスト CPU」インデックスを計算します。ストレージ エンジン
- #クエリ オプティマイザーは、ストレージ エンジン インターフェイスを呼び出して SQL を実行します。これは、実際の
- SQL の実行がストレージ エンジン で完了することを意味します。 データはメモリまたはディスクに保存されます
- SQL が実行されるたびに、そのデータはメモリにロードされます。このメモリは InnoDB の非常に重要なコンポーネントです。 :
- バッファ プール
エグゼキュータは最終的に一連の実行計画に従います ストレージ エンジン インターフェイスを呼び出して SQL の実行を完了します
バッファ プール (バッファ プール) は、非常に重要なメモリ構造です。 InnoDB ストレージ エンジン。キャッシュの役割を果たします。
- バッファ プールとは、初めてクエリを実行するときにクエリ結果をバッファ プールに保存することを意味します。の場合、最初にバッファ プールからクエリが実行されます。検索がない場合は、ディスク上で検索されてから、バッファ プールに配置されます。
- バッファ プールで使用されるデータはロックされます。
-
1. Undo ログ ファイル
: 記録されたデータが変更される前外観
機能: UNDO ログ ファイルを使用してトランザクション ロールバックを完了します:変更されたデータの外観を記録します。
redo は、トランザクションが送信されたかどうかに関係なく、データ変更後の値を記録します。- MySQL 効率を向上させるために、これらの操作は最初にメモリに配置されて完了し、更新されたデータは REDO ログ バッファに記録され、その後、特定の機会にディスクに永続化されます。
-
操作プロセス全体を記録します
bin ログには操作記録全体が記録されます (これはマスター/スレーブレプリケーションにとって非常に重要です)
プロパティ
redo ログ
bin ログ
ファイル サイズ
REDO ログのサイズは固定です (設定で設定することもできます。通常はデフォルトで十分です)
bin ログは、設定パラメータ
を使用して # ごとに設定できます。 max_bin log_size
##bin logファイルのサイズ (ただし、通常は変更することはお勧めしません)。
実装方法
redo ログ
は、
InnoDB エンジン層によって実装されます (つまり、Innodb ストレージが原因で過剰なはい)
bin log
は MySQL レイヤーによって実装されており、すべてのエンジンは
bin loglog
を使用してRecord メソッド
redo ログレコードをループで書き込むメソッドで、最後まで書き込むと最初に戻ってループでログを書き込みます。 bin ログは追加で記録されます。ファイル サイズが指定値より大きい場合、以降のログは新しいファイルに記録されます
利用シナリオ
redo ログ
クラッシュ リカバリに適しています (クラッシュ セーフ) (これは実際には Redis の永続化機能に非常に似ています)
bin ログ
マスター From に適していますレプリケーションとデータリカバリ
以上がSQL文の実行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

SQLインデックスは、巧妙なデザインを通じてクエリパフォーマンスを大幅に改善できます。 1. Bツリー、ハッシュ、フルテキストインデックスなどの適切なインデックスタイプを選択します。 2。複合インデックスを使用して、マルチフィールドクエリを最適化します。 3.オーバーインデックスを避けて、データメンテナンスのオーバーヘッドを減らします。 4.不要なインデックスの再構築や削除など、定期的にインデックスを維持します。

SQLの制約を削除するには、次の手順を実行します。削除する制約名を特定します。 ALTER TABLEステートメントを使用してください:Table Table Name Drop Constraint Constraint Nameを変更します。削除を確認します。

SQLトリガーは、特定のイベントが指定されたテーブルで実行されたときに特定のアクションを自動的に実行するデータベースオブジェクトです。 SQLトリガーをセットアップするには、トリガー名、テーブル名、イベントタイプ、トリガーコードを含むCreate Triggerステートメントを使用できます。トリガーコードは、ASキーワードを使用して定義され、SQLまたはPL/SQLステートメントまたはブロックが含まれます。トリガー条件を指定することにより、Where句を使用して、トリガーの実行範囲を制限できます。トリガー操作は、インサート、更新、または削除ステートメントを使用してトリガーコードで実行できます。新しいキーワードと古いキーワードを使用して、トリガーコードの影響を受けるキーワードを参照できます。

インデックス作成は、データ列を並べ替えてデータ検索を加速するデータ構造です。 SQLクエリにインデックスを追加する手順は次のとおりです。インデックス化する必要がある列を決定します。適切なインデックスタイプ(Bツリー、ハッシュ、またはビットマップ)を選択します。 Create Indexコマンドを使用して、インデックスを作成します。インデックスを定期的に再構築または再編成して、その効率を維持します。インデックスの追加の利点には、クエリパフォーマンスの改善、I/O操作の削減、最適化された並べ替えとフィルタリング、および並行性の改善が含まれます。クエリが特定の列を使用することが多い場合、ソートまたはグループ化する必要がある大量のデータを返し、大きい複数のテーブルまたはデータベーステーブルが含まれます。インデックスの追加を検討する必要があります。

Ifelseステートメントは、条件付き評価結果に基づいて異なる値を返す条件付きステートメントです。その構文構造は次のとおりです。if(条件)then return_value_if_condition_is_true elsen return_value_if_condition_is_false end if;。

SQLデータベースエラーを表示する方法は次のとおりです。1。エラーメッセージを直接表示します。 2。エラーを表示し、警告コマンドを表示します。 3.エラーログにアクセスします。 4.エラーコードを使用して、エラーの原因を見つけます。 5.データベース接続とクエリ構文を確認します。 6.デバッグツールを使用します。

個別の演算子は、SQLクエリの重複行を除外し、一意の値のみを返すために使用されます。一意の値のリストを取得したり、一意の値の数を数えたり、グループと組み合わせて使用したりするなどのシナリオに適しています。

SQLで候補キーを設定する方法:一意の識別列を決定します。主キーの制約を使用して主キーを作成します。一意の制約を使用して一意の制約を追加します。一意のインデックスを作成します。候補キーの設定により、データの整合性が確保され、クエリのパフォーマンスが向上し、データの複製が防止されます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!
