يتحكم العزل Isolation في طريقة تفاعل المعاملات المتزامنة وما تراه كل معاملة من بيانات. في مستوى REPEATABLE READ الافتراضي لمحرك InnoDB، تعتمد القراءات العادية المتسقة داخل المعاملة على لقطة تنشأ عادة عند أول قراءة متسقة. تستمر القراءات اللاحقة من النوع نفسه في استخدام تلك اللقطة.
لذلك قد تثبت جلسة أخرى تغييرًا بنجاح، بينما تستمر المعاملة الأولى في رؤية النسخة السابقة عند تكرار القراءة العادية. لا يعني هذا أن التثبيت فشل، ولا أن الجلسة الأولى تقرأ بيانات غير مثبتة. إنها تقرأ نسخة متسقة تناسب اللقطة التي بدأت باستخدامها قبل حدوث التغيير الآخر.
مثال
CREATE TABLE books (
id INT PRIMARY KEY,
price INT
) ENGINE=InnoDB;
INSERT INTO books VALUES (1, 20);
START TRANSACTION;
SELECT price FROM books WHERE id = 1;
SELECT price FROM books WHERE id = 1;
COMMIT;
عند تحليل التزامن، يجب تحديد ترتيب تنفيذ الأوامر والجلسات المشاركة. كما يجب التمييز بين القراءة العادية والقراءة القافلة مثل FOR UPDATE، لأن قواعد رؤية البيانات ليست متطابقة بينهما في جميع الحالات.
باختصار: قد تحافظ القراءة المتسقة على لقطة سابقة رغم تثبيت تغييرات لاحقة في جلسة أخرى.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.