インデックスロックとは? わかりやすく解説

インデックスロック

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/18 01:13 UTC 版)

ナビゲーションに移動 検索に移動

インデックスロック (: index locking)は、インデックスの整合性を維持するために使用される手法である。

概要

データベースでは、インデックスはデータベースの一部であるデータ構造であり、データベース管理システムがユーザーデータへのアクセスを効率的に行えるようにする。インデックスデータは、ユーザーデータとは異なるシステムデータであり、主にポインタで構成される。データベースの変更(挿入、削除、修正操作)では、ユーザーデータへの正確なアクセスを維持するため、必要に応じてインデックスを更新する[1]

インデックスロックはこの時に発動され、インデックスデータのうち更新が必要な該当する部分は、データベーストランザクション中に一時的にロックされる。さらに、システムの自己保守アクティビティのための特別なデータベースシステムトランザクション(ユーザーが呼び出すトランザクションではない)が発生することがある。

インデックスの一部がトランザクションによってロックされると、他のトランザクションがこのインデックス部分にアクセスできないようにブロックされることがある。ロックの種類と必要な操作によっては、変更や読み取りもブロックされることになる。インデックスロックプロトコルは、ファントム・リード現象 (Phantom Read) が発生しないことを保証する。

インデックスロックプロトコルの決まり事:

  • すべてのリレーションには、少なくとも1つのインデックスが必要。
  • トランザクションは、リレーションの1つ以上のインデックスを介してタプルを見つけた後でのみ、タプルにアクセスできる。
  • ルックアップを実行するトランザクションTiは、Sモードで、アクセスするすべてのインデックスの木構造をロックする必要がある。木構造にインデックスルックアップを満たすタプルが含まれていない場合(たとえば、範囲クエリの場合、この範囲内の木構造にタプルがない場合)であってもロックが必要である。
  • リレーションrのタプルtiを挿入、更新、または削除するトランザクションTiは、すべてのインデックスをrに更新する必要があり、挿入/更新/削除の影響を受けるすべてのインデックス木構造で排他ロックを行う必要がある。
  • 2フェーズロックプロトコルのルールを遵守する必要がある。

[1]

インデックスにアクセスするための特殊な並行性制御技術も存在する。これらの手法はインデックスの種類に依存しており、その構造を利用する。これらは通常、ユーザーデータに適用される一般的な同時実行制御方法をインデックスに適用するよりもはるかに効果的である。とても注目されており、広く研究されているB木の特殊な手法として"B木の並行性実行制御[2]" というものがあり、データベースのインデックスとしてよく使用される。

インデックスロックは、インデックスに同時にアクセスするスレッドを調整するために使用され、通常、ユーザーデータに対する一般的なトランザクションロックよりも有効期間が短くなる。専門家の文献では、それらはしばしば "ラッチ" と呼ばれる[2]

関連項目

脚注

  1. ^ a b Gerhard Weikum, Gottfried Vossen (2001): Transactional Information Systems Chapter 9, Elsevier, 1-55860-508-8
  2. ^ a b Goetz Graefe (2010): "A survey of B-tree locking techniques" ACM Transactions on Database Systems (TODS), Volume 35 Issue 3, July 2010 (also HPL-2010-9, HP Laboratories).




固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「インデックスロック」の関連用語

インデックスロックのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



インデックスロックのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのインデックスロック (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS