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 サイトの他の関連記事を参照してください。

INNODBは、レドログと非論的なものを使用して、データの一貫性と信頼性を確保しています。 1.レドログは、クラッシュの回復とトランザクションの持続性を確保するために、データページの変更を記録します。 2.Undologsは、元のデータ値を記録し、トランザクションロールバックとMVCCをサポートします。

説明コマンドのキーメトリックには、タイプ、キー、行、および追加が含まれます。 1)タイプは、クエリのアクセスタイプを反映しています。値が高いほど、constなどの効率が高くなります。 2)キーは使用されているインデックスを表示し、nullはインデックスがないことを示します。 3)行はスキャンされた行の数を推定し、クエリのパフォーマンスに影響します。 4)追加の情報を最適化する必要があるというFilesortプロンプトを使用するなど、追加情報を提供します。

Temporaryを使用すると、MySQLクエリに一時テーブルを作成する必要があることが示されています。これは、異なる列、またはインデックスされていない列を使用して順番に一般的に見られます。インデックスの発生を回避し、クエリを書き直し、クエリのパフォーマンスを改善できます。具体的には、expliect出力に使用を使用する場合、MySQLがクエリを処理するために一時テーブルを作成する必要があることを意味します。これは通常、次の場合に発生します。1)個別またはグループビーを使用する場合の重複排除またはグループ化。 2)Orderbyに非インデックス列が含まれているときに並べ替えます。 3)複雑なサブクエリを使用するか、操作に参加します。最適化方法には以下が含まれます。1)OrderbyとGroupB

MySQL/INNODBは、4つのトランザクション分離レベルをサポートしています。 1.ReadunCommittedは、知らないデータを読み取ることができます。 2。読み込みは汚い読み取りを回避しますが、繰り返しのない読みが発生する可能性があります。 3. RepeatablerEadはデフォルトレベルであり、汚い読み取りと非回復不可能な読みを避けますが、幻の読み取りが発生する可能性があります。 4. Serializableはすべての並行性の問題を回避しますが、同時性を低下させます。適切な分離レベルを選択するには、データの一貫性とパフォーマンス要件のバランスをとる必要があります。

MySQLは、Webアプリケーションやコンテンツ管理システムに適しており、オープンソース、高性能、使いやすさに人気があります。 1)PostgreSQLと比較して、MySQLは簡単なクエリと高い同時読み取り操作でパフォーマンスが向上します。 2)Oracleと比較して、MySQLは、オープンソースと低コストのため、中小企業の間でより一般的です。 3)Microsoft SQL Serverと比較して、MySQLはクロスプラットフォームアプリケーションにより適しています。 4)MongoDBとは異なり、MySQLは構造化されたデータおよびトランザクション処理により適しています。

MySQLインデックスのカーディナリティは、クエリパフォーマンスに大きな影響を及ぼします。1。高いカーディナリティインデックスは、データ範囲をより効果的に狭め、クエリ効率を向上させることができます。 2。低カーディナリティインデックスは、完全なテーブルスキャンにつながり、クエリのパフォーマンスを削減する可能性があります。 3。ジョイントインデックスでは、クエリを最適化するために、高いカーディナリティシーケンスを前に配置する必要があります。

MySQL学習パスには、基本的な知識、コアの概念、使用例、最適化手法が含まれます。 1)テーブル、行、列、SQLクエリなどの基本概念を理解します。 2)MySQLの定義、作業原則、および利点を学びます。 3)インデックスやストアドプロシージャなどの基本的なCRUD操作と高度な使用法をマスターします。 4)インデックスの合理的な使用や最適化クエリなど、一般的なエラーのデバッグとパフォーマンス最適化の提案に精通しています。これらの手順を通じて、MySQLの使用と最適化を完全に把握できます。

MySQLの実際のアプリケーションには、基本的なデータベース設計と複雑なクエリの最適化が含まれます。 1)基本的な使用法:ユーザー情報の挿入、クエリ、更新、削除など、ユーザーデータの保存と管理に使用されます。 2)高度な使用法:eコマースプラットフォームの注文や在庫管理など、複雑なビジネスロジックを処理します。 3)パフォーマンスの最適化:インデックス、パーティションテーブル、クエリキャッシュを使用して合理的にパフォーマンスを向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

WebStorm Mac版
便利なJavaScript開発ツール
