mysql では、トランザクションは、データベース操作コマンドのセットを含むユーザー定義のデータ操作シーケンスです。トランザクションは、システム全体、つまりこのデータベースのセットに対して操作リクエストを送信または取り消します。すべてのコマンドが実行されるか、まったく実行されないため、トランザクションは分割できない論理的な作業単位となります。ストアド プロシージャは、特定の機能を実行するように設計された一連の SQL ステートメントです。ストアド プロシージャは、データベースに作成および保存されるプログラム可能な関数であり、通常は SQL ステートメントといくつかの特別な制御構造で構成されます。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql のトランザクション
データベース トランザクション (トランザクション) は、一連のデータベースを含む、ユーザー定義の一連のデータ操作のメカニズムです。操作コマンド。トランザクションは、すべてのコマンド全体とともに操作リクエストをシステムに送信または取り消します。つまり、この一連のデータベース コマンドは実行されるか実行されないかのどちらかであるため、トランザクションは分割できない論理的な作業単位となります。
データベース システムで同時操作を実行する場合、トランザクションは最小の制御単位として使用されます。これは、複数のユーザーが同時に操作するデータベース システムに特に適しています。たとえば、航空会社の予約システム、銀行、保険会社、証券取引システムなどです。
MySQL トランザクションは主に、大規模な操作と複雑性の高いデータを処理するために使用されます。例えば、人事管理システムにおいて、個人を削除する場合、その個人の基本情報だけでなく、メールボックスや記事など、その個人に関連する情報も削除する必要があります。データベース操作ステートメントはトランザクションを構成します。
MySQL では、Innodb データベース エンジンを使用するデータベースまたはテーブルのみがトランザクションをサポートします。
トランザクション処理を使用すると、データベースの整合性を維持し、SQL ステートメントのバッチがすべて実行されるか、まったく実行されないかを確認できます。
トランザクションは、挿入、更新、削除ステートメントの管理に使用されます
一般的に、トランザクションは 4 つの条件 (ACID):: アトミック性を満たす必要があります。 、または不可分性、一貫性、孤立性、独立性、耐久性。
原子性: トランザクション内のすべての操作は完了するか完了しないかのどちらかであり、中間リンクで終了することはありません。トランザクションの実行中にエラーが発生した場合は、トランザクションがまったく実行されなかったかのように、トランザクションが開始される前の状態にロールバックされます。
一貫性: データベースの整合性は、トランザクションの開始前およびトランザクションの終了後に破壊されません。これは、書き込まれるデータが、データの精度や連結など、事前に設定されたすべてのルールに完全に準拠する必要があり、後続のデータベースが所定の作業を自発的に完了できることを意味します。
分離: データベースでは、複数の同時トランザクションが同時にデータの読み取り、書き込み、変更を行うことができます。分離により、複数のトランザクションが同時に実行されるときのクロス実行によるデータの破損を防ぐことができます。 。トランザクション分離は、非コミット読み取り、コミット読み取り、反復読み取り、シリアル化可能など、さまざまなレベルに分かれています。
永続性: トランザクションの完了後、データへの変更は永続的であり、システムに障害が発生した場合でも失われることはありません。
#mysql のストアド プロシージャ
ストアド プロシージャは、特定の処理を実行するためにデータベース ディレクトリに保存されるストアド プロシージャのグループです。関数 SQL ステートメントのコレクション。ストアド プロシージャを使用する目的は、SQL ステートメントで一般的または複雑な作業を事前に作成し、指定した名前で保存することです。このプロシージャはコンパイルおよび最適化されてデータベース サーバーに保存されるため、ストアド プロシージャと呼ばれます。将来、定義したストアド プロシージャと同じサービスをデータベースで提供する必要がある場合は、「CALL ストアド プロシージャ名」を呼び出すだけで自動的に完了します。 データベースの操作に一般的に使用される SQL ステートメントは、最初にコンパイルし、実行時に実行する必要があります。ストアド プロシージャは、別のアプローチで SQL ステートメントを実行します。 ストアド プロシージャは、データベースに作成および保存されるプログラム可能な関数であり、通常は SQL ステートメントといくつかの特別な制御構造で構成されます。ストアド プロシージャは、異なるアプリケーションまたはプラットフォームで同じ特定の機能を実行する場合に特に適しています。 MySQL 5.0 バージョンは以前はストアド プロシージャをサポートしていなかったので、MySQL のアプリケーションが大幅に減少しました。 MySQL はバージョン 5.0 からストアド プロシージャをサポートしています。これにより、データベースの処理速度が向上するだけでなく、データベース プログラミングの柔軟性も向上します。 ストアド プロシージャはデータベースの重要な機能です。ストアド プロシージャを使用できます。データを変換するための、データ移行やレポート作成のためのプログラミング言語に似ており、一度正常に実行されると、いつでも呼び出すことができ、指定された機能操作を完了できます。 ストアド プロシージャを使用すると、データベース アクセスの効率が向上するだけでなく、データベース使用のセキュリティも向上します。呼び出し元にとって、ストアド プロシージャは SQL ステートメントをカプセル化するため、呼び出し元は論理関数の特定の実装プロセスを考慮する必要がありません。単純な呼び出しだけで、トリガー、他のストアド プロシージャ、Java、Python、PHP などのアプリケーションから呼び出すことができます。
MySQL ストアド プロシージャの利点
通常のストアド プロシージャは、アプリケーションのパフォーマンスの向上に役立ちます。ストアド プロシージャが作成されると、コンパイルされてデータベースに保存されます。ただし、MySQL はストアド プロシージャの実装方法が若干異なります。 MySQL ストアド プロシージャはオンデマンドでコンパイルされます。ストアド プロシージャをコンパイルした後、MySQL はそれをキャッシュに置き、接続ごとにストアド プロシージャの独自のキャッシュを維持します。アプリケーションが 1 つの接続でストアド プロシージャを複数回使用する場合は、コンパイルされたバージョンを使用します。それ以外の場合、ストアド プロシージャはクエリのように機能します。
ストアド プロシージャは、複数の長い SQL ステートメントを送信するのではなく、ストアド プロシージャの名前とパラメータのみを送信すればよいため、アプリケーションとデータベース サーバー間のトラフィックの削減に役立ちます。
ストアド プロシージャは再利用可能であり、あらゆるアプリケーションに対して透過的です。ストアド プロシージャはデータベース インターフェイスをすべてのアプリケーションに公開するため、開発者はストアド プロシージャですでにサポートされている機能を開発する必要がありません。
ストアド プロシージャは安全です。データベース管理者は、基礎となるデータベース テーブルに権限を付与せずに、データベース内のストアド プロシージャにアクセスするアプリケーションに適切な権限を付与できます。
[関連する推奨事項: mysql ビデオ チュートリアル ]
以上がmysqlのトランザクションとストアドプロシージャとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。