شرح صفوف ومحتوى الفقرة
يتيح لك محرك InnoDB ضبط مستوى العزل للجلسة الحالية عبر الأمر SET SESSION TRANSACTION ISOLATION LEVEL بين أربعة مستويات قياسية مرتبة من الأقل عزلاً إلى الأعلى صرامةً:
READ UNCOMMITTED: يسمح بالقراءة المتسخة وغير المتكررة والشبحية؛ نادراً ما يُستخدم في الإنتاج لخطورة قراءة بيانات غير معتمدة.READ COMMITTED: يمنع القراءة المتسخة تماماً، وينشئ لقطة قراءة جديدة مع كل جملةSELECTمنفردة داخل المعاملة بحيث ترى أحدث البيانات المعتمدة.REPEATABLE READ(المستوى الافتراضي في InnoDB): يثبت لقطة قراءة موحدة طوال المعاملة منذ أول عملية قراءة، فيمنع القراءة المتسخة وغير المتكررة والشبحية معاً.SERIALIZABLE: أعلى درجات العزل؛ يحوّل جملSELECTالعادية إلى قراءات مقفلة (FOR SHARE) لمنع أي تعديل متزامن، لكنه يقلل سرعة التزامن.
+------------------+
| active_isolation |
+------------------+
| READ-COMMITTED |
+------------------+
SQL
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT @@transaction_isolation AS active_isolation;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;