2012-03-20 13 views
7

Soru oldukça basittir, ancak tam bir yanıt bulamadım: bir myisam db dosyasında, bir php dosyası bir tabloyu kilitlerse (atomik bir işlemle, bir INSERT ile) ve başka bir php dosyası erişmeye çalışırsa ne olur? Aynı tablo (okuma veya yazma)?Mysql concurrency: Kilitli bir tabloya erişilirse ne olur?

Şimdi, ikinci seansın masaya erişemeyeceği aşikar iken, tam olarak ne olur? Bir çeşit hata döndürüyor mu? Erişim yapana kadar sırada bekler mi?

cevap

6

İkinci bağlantı, kilidin serbest kalmasını bekleyecektir. MyISAM herhangi yazma (ekleme/güncelleme/silme) kilitlenir tablo ile

, sadece etkilenen satır

+0

Mükemmel kilitlenir atom operasyon yazın Ancak InnoDB tabloyla

. İkinci bağlantı için bir çeşit zaman aşımı var mı? – PixelSapiens

+0

mysql config OR'de tanımlanan bağlantı zaman aşımı ne olursa olsun VEYA kullandığınız uygulama (örneğin php.ini mysql zaman aşımı 60 saniyedir). Bağlantı bu zamana kadar bekleyecektir, ardından bırakın (belli ki) –

+0

Mükemmel! Çok teşekkürler! – PixelSapiens