ホームページ > データベース > mysql チュートリアル > MySQL ストアド プロシージャとは何を意味しますか?

MySQL ストアド プロシージャとは何を意味しますか?

青灯夜游
リリース: 2019-05-23 18:56:29
オリジナル
3408 人が閲覧しました

MySQL ストアド プロシージャとは何を意味しますか?

ストアド プロシージャ (ストアド プロシージャ) は、外部プログラムから呼び出せるように複雑なプログラムをデータベースに格納するデータベース オブジェクトであり、特定の処理を完了するように設計された一連の SQL ステートメントです。関数。コンパイルされてデータベースに保存された後、ユーザーはストアド プロシージャの名前を指定し、パラメータを指定することによって、ストアド プロシージャを呼び出して実行します (ストアド プロシージャにパラメータがある場合)。

#ストアド プロシージャは、データベースに作成され保存されるプログラム可能な関数です。これは、SQL ステートメントといくつかの特殊な制御構造で構成されます。ストアド プロシージャは、異なるアプリケーションやプラットフォームで同じ機能を実行する場合、または特定の機能をカプセル化する場合に便利です。データベース内のストアド プロシージャは、プログラミングにおけるオブジェクト指向アプローチのシミュレーションとみなすことができます。これにより、データへのアクセス方法を制御できます。

ストアド プロシージャの概念は非常に単純で、コードのカプセル化とデータベースの SQL 言語レベルでの再利用です。MySQL バージョン 5.0 以降でサポートされています。

ストアド プロシージャの長所と短所:

1. 利点

● ストアド プロシージャは、SQL 言語の機能と柔軟性を強化します。ストアド プロシージャはフロー制御ステートメントを使用して作成でき、柔軟性が高く、複雑な判断やより複雑な操作を実行できます。

# ストアド プロシージャを使用すると、標準コンポーネントをプログラムできます。ストアド プロシージャを作成した後は、ストアド プロシージャの SQL ステートメントを書き直すことなく、プログラム内でストアド プロシージャを複数回呼び出すことができます。また、データベースの専門家は、アプリケーションのソース コードに影響を与えることなく、いつでもストアド プロシージャを変更できます。

##● ストアド プロシージャを使用すると、より高速な実行速度を実現できます。操作に大量の Transaction-SQL コードが含まれている場合、または複数回実行される場合、ストアド プロシージャはバッチ処理よりもはるかに高速に実行されます。ストアド プロシージャはプリコンパイルされているためです。ストアド プロシージャが初めて実行されるとき、オプティマイザによってクエリが分析および最適化され、最終的に実行プランがシステム テーブルに保存されます。バッチ Transaction-SQL ステートメントは、実行するたびにコンパイルして最適化する必要があり、速度は比較的遅くなります。

#● ストアド プロシージャを使用すると、ネットワーク トラフィックを削減できます。同じデータベース オブジェクトに対する操作 (クエリ、変更など) の場合、この操作に関係する Transaction-SQL ステートメントがストアド プロシージャに編成されている場合、そのストアド プロシージャがクライアント コンピュータで呼び出されるとき、呼び出しのみが送信されます。これにより、ネットワーク トラフィックが大幅に増加し、ネットワーク負荷が軽減されます。

# ストアド プロシージャはセキュリティ メカニズムとして十分に活用できます。システム管理者は、特定のストアドプロシージャの実行権限を制限することで、対応するデータへのアクセス権限を制限し、権限のないユーザーによるデータへのアクセスを回避し、データのセキュリティを確保することができます。

2. 欠点

● サポートされているプログラミング言語が異なるため、ストアド プロシージャは特定のデータベース用にカスタマイズされることがよくあります。他のメーカーのデータベース システムに切り替える場合は、元のストアド プロシージャを書き直す必要があります。

# パフォーマンスのチューニングとストアド プロシージャの作成は、さまざまなデータベース システムによって制限されます。

以上がMySQL ストアド プロシージャとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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