裏MySQLクエリー入門(26) 基礎編15 ダーティーリード
場面によっては、参照整合性が必要ない場合がある。その場面が、長時間のロックを要する場合、ダーティーリードにモードを切り替えることによってパフォーマンスを向上させることができることがある。要するにKVSと同じように参照整合性を犠牲にすることによって速度を向上させるというわけだ。
ダーティーリードモードに切り替える場合はTRANSACTION ISOLATION LEVELで設定する。
- ダーティーリードON
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
- ダーティーリードOFF
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
巨大なテーブルをジョインした上にサブクエリーを投げさらにGROUP BYで集計するようなクエリーのせいで、他のセッションがロック待ちで刺さっている場合の、緊急回避に効果的です。そもそも、そんなクエリーは修正しておけって話ですが奥の手として知っておくと役に立つかも。