MySQL kilit soru

3 Cevap php

Ben bir online sohbet istemcisi benzer bir şey var. Bir kullanıcı bir ileti gönderir zaman id=currentID+1 ile MySQL veritabanı tablosunda saklanır. Ben başka bir istemci uzun yoklama ve mesaj bekliyor 'id = CurrentID'yi +1' var.

Bu değişimden sonra, bu satır daha asla kullanılmaz.

Ben bu durumda bir kilit ihtiyacınız var mı? Ben endişeleniyorum şey okuma PHP yan satır görmek ve yazı PHP yan satır oluşturulurken tamamlanmadan önce kendi değerlerini okumak mümkün olacak olmasıdır.

3 Cevap

(O otomatik olarak MyISAM durumunda bir tablo kilidi alır, ya da InnoDB durumunda bir satır kilit. Yani hayır, bu kadar uzun ok olmalıdır okuma yapmış kadar sadece ekleme konum olarak MySQL satır mevcut yapmaz satır (ve daha sonra vb, üzerinde güncellemeler çağıran değil) ...

MySQL yazıyor atom vardır. Tamamen yazılır kadar diğer sorgular bunu yapmak için tek bir INSERT deyimini kullanarak varsayarak, satır "göremiyorum".

Yeni satır sadece takılı sonra seçme sorgusu tarafından görülecektir.

ekler atomik

ve evet myisam imploys tablo düzeyinde kilitleme, innodb imploys satır düzeyinde kilitleme ederken.

ve bir işlem tabloların ayarlayabilirsiniz u yapabilir, işlem kararlıdır kadar orada efekt herhangi okuma görünür değildir, atmoic kabul edilir bir select shared kaydedilmemiş verileri görmek için.