person holding white marker

データベース、SQLを使用する際に知っておきたい知識を整理しておきたいと思います。


句の実行順

上から順番に実行されます。
FROM
ON / JOIN
WHERE
GROUP BY
COUNT / AVG / SUM / MIN / MAX etc…
HAVING
SELECT / DISTINCT
ORDER BY
LIMIT


排他

複数ユーザによるアクセスによるデータ不整合を防止するために行う排他(ロック)。
排他の方式はいくつかあるが、楽観排他と悲観排他の2つが特によく登場する。


楽観排他(楽観ロック)

他のユーザとめったに競合しないだろうと楽観的に考える排他です。
データの取得する際にロックせずに、更新前に変更されていないかを確認してから更新する方式。
言ってしまえば、先勝ち!!!
つまりデータを取得してから何か処理をしてデータを更新するという一連の流れの間に他のユーザに更新されたら処理失敗になるということ。


悲観排他(悲観ロック)

他のユーザが頻繁に更新して競合がよく発生するだろうと悲観的に考える排他です。
データの取得する際にロックをして、更新してからロックを解除する方式。
言ってしまえば、自分がデータ取得してから更新が終わるまでの間、誰にも触らせないようにしておくということ。


SQLについて

こちらも併せて