MySQL PREPARE 前処理テクノロジの意義は、サーバへの負担を軽減するテクノロジであることです。 つまり、ほとんどの場合、ある要件に対する特定の SQL 文が繰り返し呼び出されて実行されるか、または個々の値のみが実行されるたびに異なる可能性があります。
1. 前処理MySQL は、前処理と呼ばれるサーバー側の準備済みステートメントのサポートを提供します。 このサポートは、効率的なクライアント/サーバー バイナリ プロトコルを活用します。パラメータ値のプレースホルダーを含む準備済みステートメントを使用すると、次の利点が得られます。
前処理インターフェース 1. アプリケーションでの準備済みステートメント C プログラム用の MySQL C API クライアント ライブラリ、Java プログラム用の MySQL Connector/J、および MySQL などのクライアント プログラミング インターフェイスを通じて、サーバー側の準備済みステートメントを使用できます。 NET テクノロジー プログラム MySQL Connector/NET。たとえば、C API は、準備されたステートメント API を構成する一連の関数呼び出しを提供します。 2. SQL スクリプト内の準備済みステートメント 準備済みステートメント用の代替 SQL インターフェイスもあります。ただし、プログラミングは必要ありません。SQL レベルで直接使用でき、mysql クライアント プログラムなど、SQL ステートメントをサーバーに送信して実行できる任意のプログラムで使用できます。 2. 前処理塗布方法準備されたステートメントの SQL 構文は、次の 3 つの SQL ステートメントに基づいています。
A. 例:準備されたステートメントはセッション間で使用できません。 mysql>テーブル `t1` を作成します ( `id` int NULLではない、 名前varchar(20), キー `idx_id` (`id`) ) エンジン=InnoDB ; mysql> t1(id,name) に値 (1,'A'),(2,'B'),(3,'C'),(4,'D'),(5,'E'),(6,'F'); を挿入します。 #準備されたステートメントを設定します。mysql>PREPARE stmt1 FROM 'SELECT * FROM t1 WHERE a=? '; #転送変数を設定します。mysql>SET @a = 8; #ステートメントの実行mysql>EXECUTE stmt1 USING @a; # 準備されたステートメントを解放します。mysql>DEALLOCATE PREPAR stmt1; B. 実行計画の変更を追跡するための前処理ステータス インジケーター Select_scan (実行された全テーブル検索クエリの数) の変化を観察することで、データ量が影響を受けているかどうかを判断できます。 データ量が変化すると、前処理された SQL ステートメントの実行プランも変化します。 C. ストアドプロシージャには前処理が含まれている準備されたステートメント ストアド ルーチン内で準備されたステートメントを作成した場合、ストアド ルーチンが終了してもそのステートメントは解放されません。 区切り文字 // proc_prepared が存在する場合はプロシージャを削除します。 プロシージャ proc_prepared() を作成する 始める INT を宣言します。 i INT を宣言します。 PREPARE stmt1 FROM 'SELECT * FROM t1 WHERE id>? '; SET @a = 5; @a を使用して stmt1 を実行します。 終わり // 区切り文字 ; proc_prepared() を呼び出す。 ストアド プロシージャの後、準備されたステートメントが個別に呼び出され、結果セットが返されます。これは、前処理によって SET @a = 5 が破棄されなかったことを示します。 @a を使用して stmt1 を実行します。 +----+------+ | ID | 名前 | +----+------+ | 6 | 女 | 。 。 。 ストアドプロシージャの後、準備されたステートメントが個別に呼び出され、結果セットが返されます。これは、前処理が破棄されないことを意味します。 D. プロファイルを通じてステートメントの解析コストを表示するさまざまなステートメントの実行時間をプロファイリングすることで、ステートメントの解析にかかる時間は 0.01 秒以内になります。無視できます。 3. まとめプリコンパイルの初期の役割:
制限と実際の効果:
その限界と実際の効果から判断すると、現在は期待通りに機能していない。音場環境での使用には適していません。 これで、MySQL prepare プリプロセスの具体的な使用法に関するこの記事は終了です。MySQL prepare プリプロセスのより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: フレックスレイアウトではサブアイテムの高さを維持できる
>>: Jenkins統合Dockerプラグインの問題を解決するいくつかの方法
1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...
目次必要:アイデア:レッスン:テキストを共有する:要約する必要:インターフェイスからサブメニュー デ...
昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...
これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...
目次概要1. store.jsを定義する2. store.js を使用するコンポーネント3. 成果を...
この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...
序文オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証...
MySQL データベースが Centos7 システムにインストールされており、オペレーティング シス...
目次etcdの機能etcdが独自の高可用性クラスタを構築するには、主に3つの形式があります。今回構築...
1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...
Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...
1. はじめにこの記事では、Docker Swarm を使用して Nebula Graph クラスタ...
以下のように表示されます。表から条件フィールドでグループ化仮想テーブルとフィールドを作成し、フィール...
1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...
目次ストレージエンジンのメモリ管理データ ページを LRU キューの先頭に置かないのはなぜですか?ダ...