ロックの粒度
ロックする範囲の広さだよ
「粗い」「細かい」や「大きい」「小さい」で表現することが多いよ
簡単に書くよ
ロックの粒度(読:ロックノリュウド 英:lock granularity)とは
「これは今、俺が使ってるからさ。他の人は触らないでね」にする(ロックする)範囲の広さのこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・排他制御
・ロック
・データベース
・テーブル
・レコード
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
排他制御は「ダブルブッキングしないようにすること」です。
同時に使われるとマズい(おかしくなる)ものに組み込む仕組みで、1つの物を同時に使わせないための工夫です。
今回 登場するロックは「これは今、俺が使っているからさ。他の人は触らないでね」です。
鍵をかければ、他の人は使えないですよね?
そのような状態、もしくは、そのような状態にする行為です。
ロックは排他制御を実現する手段のひとつです。
データベースは「データを入れておく箱」です。
ただし「データベース」という用語は、実際には もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。
とりあえず
データベースの話において、実際にデータを入れておく箱がテーブル
と覚えてください。
レコードは行列で表現される表の「行」です。
ただし、今回は「データベースに入っているデータ(行)」と解釈してください。
繰り返しになりますが、データベース(のテーブル)は表形式のイメージで表現されるのが一般的です。
例えば以下のような形です。
| 名前 | 性別 | 年齢 |
|---|---|---|
| ピヨ太 | 男 | 成人済み |
| ピヨ子 | 女 | 永遠の17歳 |
| ピヨ太ママ | 女 | 心は乙女 |
この表には、ピヨ太君、ピヨ子さん、ピヨ太ママの3人分のデータが入っています。
名前と性別と年齢のセットで1行です。
この表におけるそれぞれの行、名前と性別と年齢のセットがレコードです。
さて、ここで考えてみてください。
1行には1人分のデータが入っています。
1行で1件のデータです。
そのため、データベース(のテーブル)にしまったデータそのものを指して「レコード」と表現する場合も あります。
例えば、データベース(のテーブル)にデータを入れることを指して「レコードを作る」と言ったりします。
あるいは「2件以上のデータ」を意図して「複数レコード」と表現する場合も あります。
基本的には「行」の意味ですけどね。
「データ1件」を意図する場合もあるのです。
一応、頭の片隅にでも置いておいてあげてください。

以上を踏まえて
ロックする範囲の広さ
が「ロックの粒度」です。

ロックの粒度は「粗い」「細かい」や「大きい」「小さい」で表現するのが一般的です。
「ロックの粒度が粗い(大きい)」であれば「ロックする範囲が広いよ」です。

「ロックの粒度が細かい(小さい)」であれば「ロックする範囲が狭いよ」の意味になります。

例えば、データベースの世界には「テーブルロック」という用語があります。
テーブルロックは「あれこれする対象のデータが入っているテーブル全体をロックするやり方」です。

「行ロック」という用語もあります。
行ロックは「あれこれする対象のレコード(行)のみをロックするやり方」です。

テーブルロックと行ロックを比べた場合
テーブルロック:(行ロックと比べて)ロックの粒度が粗い
行ロック:(テーブルロックと比べて)ロックの粒度が細かい
となります。
一言でまとめるよ
まぁ「ロックの粒度」って単語が出てきたら「ロック
(誰かが使っている状態(にすること))する範囲の広さなんだな~」と お考えください。
おまけ
■訳してみるよ
「lock(ロック)」の意味は「錠前」とか「錠を掛ける」とか「閉じ込める」とか「固定する」とか「動けなくする」とかです。
「の粒度」は日本語ですね。
何となく くっつけると
「錠を掛ける」の粒度
となります。






