SORU
27 Mayıs 2009, ÇARŞAMBA


MySQL kilitleme vermeden seçmek için bir yolu var mı?

Sorgu:

SELECT COUNT(online.account_id) cnt from online;

Ama online masa da bir olay tarafından değiştirildi show processlist çalıştırarak kilit görüyorum sık sık.

Select deyimi kilitleri neden olamaz MySQL herhangi bir gramer var mı?

Köle ve MySQL veritabanı üzerinde olduğunu yukarıda söylemeyi unuttum.

my.cnf:transaction-isolation = READ-UNCOMMITTEDekledim sonra köle, hata ile bir araya gelecek:

 Error 'Binary logging not possible. Message: Transaction level 'READ-UNCOMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'' on query

Bunu yapmak için, uyumlu bir yol var mı?

CEVAP
27 Mayıs 2009, ÇARŞAMBA


Bir makale başlıklı bulundu "NOLOCK" . MYSQL

https://web.archive.org/web/20100814144042/http://sqldba.org/articles/22-mysql-with-nolock.aspx

MSSQL aşağıdakileri yapın:

SELECT * FROM TABLE_NAME WITH (nolock)

ve MYSQL eşdeğerdir

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;

EDİT

Michael Mior aşağıdaki (yorum) önerdi

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
COMMIT ;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • habpsu

    habpsu

    25 Temmuz 2007
  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011