1

だから、私は現在MySQLで作業していますが、一般的な概念を理解しようとしているので、SQLの答えはおそらくうまくいくでしょう。

そのため、並行環境ではスレッド セーフが明らかに重要です。私は主に Java でプログラミングを行っており、スレッドの競合を避けるために変更可能な状態を保護するコードを書くことには常に細心の注意を払っています。

ただし、SQL では、同じレベルの安全性を実現する方法について非常に混乱しています。ですから、わからないことから始めて、混乱していることに進み、そこから理解していきます。

まず、私が知っているのはトランザクションです。自動コミットを無効にし、セーブポイント、ロールバックなどを使用します。私が理解しているように、トランザクションはコミットの時点でアトミックです。

しかし、明示的なロック ステートメントや同時実行モデル (楽観的、悲観的) への言及も見てきました。また、すべてにトランザクションを使用して、それが安全であると仮定したくもありません。全体を理解しない限り、コードを書きません。何かを偶然に任せたくありません。

さらに、トリガー、プロシージャーなどについてはどうでしょうか。トランザクションでそれらを使用するにはどうすればよいですか? そこで原子性を確保するにはどうすればよいですか?

これは少し複雑すぎる気がしますが、複数のスレッドとユーザーがデータベースを安全に変更できるようにする方法について、包括的で明確な説明を探しています。私はそれよりもSQLをよく理解しているので、完全ではありません.ELI5ですが、プロセスを本当に完全に説明しているもの.

ありがとう。私の検索では、このサイトでこの質問に適切に一致するものは見つかりませんでしたが、重複している場合はお詫びし、この質問がロックされる前に適切な回答へのリンクを提供していただくようお願いします.

4

0 に答える 0