ストアド プロシージャを使用すると、SQL ステートメントの再利用率を効果的に向上でき、関連する SQL ステートメントのグループをストアド プロシージャにまとめることができるため、アプリケーションの複数のクエリによって発生する MySQL サーバーとの接続遅延やネットワーク リソースの占有を回避できます。以下は、ID を渡して指定された ID を持つ学生を削除し、同時に拡張テーブル内の学生情報を削除するストアド プロシージャの例です。この方法では、アプリケーションが 2 つの SQL 操作を実行する必要なく、関連データを処理できます。 存在する場合は削除プロシージャ delete_student_by_id; 区切り文字 $$ CREATE PROCEDURE delete_student_by_id(IN p_id INT) 始める t_studentsから削除 ここで、id = p_id; t_students_info から削除 ここで、student_id = p_id; 終わり $$ 区切り文字 ; 一般に、ストアド プロシージャには次のような利点があります。
もちろん、常に長所と短所があり、ストアド プロシージャにもいくつかの欠点があります。
したがって、通常、上記の欠陥を回避するには、ストアド プロシージャを小さく簡潔に保つ必要があります。もちろん、ストアド プロシージャは、特にストアド プロシージャ内でループを使用して複数の小さなクエリを完了する場合など、一部の操作ではより高速に実行されます。クエリが十分に小さい場合、SQL ステートメントの解析とネットワーク通信が、ワークロードが高くなりすぎる大きな要因になります。今回は、ストアド プロシージャの利点について説明します。次のストアド プロシージャ コードを例に挙げます。 insert_many_rows が存在する場合はプロシージャを削除します。 デリミタ // CREATE PROCEDURE insert_many_rows(IN loops INT) 始める v1 INT を宣言します。 SET v1=ループ; v1 > 0 の場合 test_tableに値を挿入(NULL, 0, 「ああああああああああああ」、 'ああああああああああ'); v1=v1-1 を設定します。 終了しながら; 終わり // デリミタ ; 同じ機能をアプリケーションで比較すると、ストアド プロシージャを使用した場合の方が 2 倍以上パフォーマンスが向上し、MySQL プロキシを使用した場合と比較すると 3 倍パフォーマンスが向上することがわかります。
上記は、MySQL ストアド プロシージャの長所と短所の詳細な分析です。MySQL ストアド プロシージャの長所と短所の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: JavaScript の高度なプログラミングの基本参照型
>>: CSS ピックアップ矢印、カタログ、アイコン実装コード
vueモバイル端末は、画面上で指をスライドさせる方向を判断します。具体的な内容は次のとおりです。これ...
この記事の例では、ログインページを実装するためのlayuiの具体的なコードを参考までに共有しています...
この記事では、弾性ナビゲーション効果を実現するためのJavaScriptの具体的なコードを参考までに...
問題の説明フロントエンドリモート検索やファジークエリと呼ばれる種類のクエリがあります。 Ele.me...
CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...
背景:以前、コンテナ内のホストが提供する Redis サービスにアクセスする必要があるプロジェクトを...
Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...
質問: DockerにNginxをインストールするときに次のエラーが発生しました: docker: ...
この記事の例では、WeChatアプレットのビデオプレーヤーコンポーネントの具体的なコードを参考までに...
DB ベンチマーク テストを実行する場合、qps と tps はデータベースのパフォーマンスを測定す...
目次Docker Compose の使用シナリオ基本的なデモ基本的な操作とメンテナンスdocker-...
ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...
目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...
目次1. Vue スキャフォールディングをインストールする2. プロジェクトを作成する3.1 プロジ...
目次解決策1: EUIの転送コンポーネントをコピーして変更し、プロジェクトディレクトリに導入する解決...