Masa seviyesi kilitlemenin faydaları


7

MyISAM depolama motorunun kullandığı masa seviyesi kilitlemenin faydaları nelerdir?Satır düzeyinde kilitlemenin eşzamanlı güncelleme gibi birçok avantajı vardır ve tabloyu kilitlemeyen okumalar.

DüzenleMasa seviyesinde kilitlenmenin kilitlenmeleri önlediği yaygın olarak kabul edilir.Ancak eşzamanlılık maliyetinde çıkmazların önlenmesi ne kadar faydalıdır?

  0

[Bu tartışma] (http://dba.stackexchange.com/questions/1/what-are-the-main-differences-between-innodb-and-myisam) sizin için bazı önemli bilgiler içerebilir. 14 eyl. 112011-09-14 20:57:50

  0

Bu tartışma MyISAM vs InnoDB özellikleri hakkında bir şey yok, masa seviyesinde kilitlemenin faydaları hakkında bir şey yok. 14 eyl. 112011-09-14 21:05:21

5

MyISAM'ın kilitlenme özelliği yoktur, ancak bir şekilde kilitlenme, masa düzeyinde kilitlenmeye göre bir gelişmedir.

Kilitli bir tablodan INSERT/UPDATE/DELETE uygulamasına çalıştığınızda mevcut olana kadar veya zaman aşımına uğrayana kadar beklemeniz gerekir (varsayılan olarak 28800 saniye).Sıralı bir kilitleme motorunda kilitlenme olduğunda, boş değilse ve sunucu bir çeşit "sonsuz döngü" tespit ederse - 2 bağlantının bir satır vermeyeceği bir süre beklerseniz - her iki bağlantıyı da hızla reddeder ve bir kilitlenme ver.

Kilitlenmeyi gidermeye çalışıyorsanız, aşağıdaki hususlara göz atmanızı öneririm:

  • Kilitlenme, bir işlemde hatalı kodda mı oluyor?hesaplamanızı tamamlamak ve güncellemek için bir satır "tutmak" gerçekten gerekli midir?
  • İfadenizdeki koşul için bir dizin var mı?Aksi halde, InnoDB gerçekten bütün masanın güncellenmeyi bekliyormuş gibi işaretleyebilir.
  • Sunucudaki harddisk'in InnoDB değişikliklerini yeterince hızlı bir şekilde yapamadığı söylenebilir mi?Sunucudaki denetim noktası işlemi InnoDB ile ilgili sorunlara/duraklamalara neden olur mu?
  • Otomatik artımlı kilitleme nedeniyle mi?Öyleyse, belki de daha liberal bir otomatik artışa http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html - ayar http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html (ayrıca bu gibi değişikliklerin neden olduğu bazı sorunları çözmek için satır düzeyinde kilitlemeye de bakın)

3

Bir masa kilidi (MyISAM tarafından kullanıldığı gibi) deadlock sayılarından deadlock .

  0

BTW +1 ilk kilitlenmeye cevap vermek için !!! 14 eyl. 112011-09-14 21:17:32


6

MySQL programları bu şekilde yürütme sorguları yana:

  • Yazma istekleri (UPDATE'ler ve DELETE'ler gibi) okuma isteklerine göre öncelik kazanır (SELECT)
  • Sunucu FIFO biçimini yazar (alınan sırayla)

Faydaları nelerdir?

MyISAM ile kilitlenmeler asla gerçekleşemez.MySQL sunucusu böylece tüm çekişme, açık (KİLİT TABLOSU) veya kapalı (Herhangi bir DML) yönetebilir.

Bir MyISAM tablosu silinmiş veya güncellenmiş kayıtlara sahip olmadığı sürece, eşzamanlı ekler cezasızlıkla serbestçe oluşabilir.Bu gerçekten de, INSERT'leri açık bir okuma kilidi olan bir tabloya dahil eder.

Boşlukları olan herhangi bir tablo için OPTIMIZE TABLE komutunu çalıştırmak, bu boşlukları giderir ve eşzamanlı eklere bir kez daha izin verir.

Daha fazla bilgi için, lütfen "MySQL 5.0 Certification Study Guide" pages 408-412 Section 29.2 okuyun.

  0

Bu şekilde kilitlenme asla gerçekleşmeyecek, ancak eşzamanlılık olmadığı gibi dezavantajları ile karşılaştırıldığında faydası ortaya çıkacaktır.Ve yüksek yükte veritabanının yavaş iş çıkışı. 14 eyl. 112011-09-14 21:10:03

+2

@ rickames is myisam'in yararı güncellemeleri nasıl yönettiği değildir.Yazma yoğun olmayan bir durumda en iyisidir. 14 eyl. 112011-09-14 21:13:01

  0

Ne yazık ki, çoğu kişi varsayılan MyISAM olan WordPress, Drupal ve MoveableTypes CMS'leri kullanıyor.Herhangi birinin yüksek trafike maruz kalmış bir web sitesi varsa, MyISAM'den uzak durmaları gerekir.Aksi takdirde, MyISAM yeterli olmalıdır. 14 eyl. 112011-09-14 21:13:45

  0

@En doğru, ama yoğun okuma sistemlerinde bile satır seviyesi kilitlemesine kıyasla ne kadar faydalı? 14 eyl. 112011-09-14 21:14:38

  0

Okumaya açık bir sistemde bile, yalnızca bir DELETE veya UPDATE ifadesi, MyISAM'in yararlarını ne olursa olsun hemen geçersiz kılar. 14 eyl. 112011-09-14 21:16:59

  0

@rickjames çıkma kilitleri kaldırılması satır kilidi üzerinde masa kilidi yararına '' dir.MyISAM'ın innodb'a göre başka faydaları var, ancak bu bununla ilgili bir tartışma değil (innodb'un myisam'a göre birçok faydası var!) 14 eyl. 112011-09-14 21:25:24

  0

Bu korkarım MySQL için çok tipik bir organizasyon.MyISAM'ın masa seviyesinde kilitlenmesi olmasının nedeni, basitçe satır düzeyinde kilitleme yapamadıklarıdır (bu bize InnoDB'yi veren üçüncü bir tarafa kaldı).Ama onlar başından beri sanki onu döndürmeye çalışıyorlar.Yabancı anahtarlara, işlemlere, depolanan işlemlere vb. İhtiyacınız olmadığını söylediklerini hatırlıyorum.Dokümanlarını ** BÜYÜK ** bir tutam tuzla alın. 15 eyl. 112011-09-15 18:28:52


3

İki fayda.

a.Tabloları kilitlemek, kilitlenme sorununu çözmek için brute-force algorithm örneğidir.Kaba kuvvet, her zaman "işler" in uygun değerleri için çalışır.

Unix'in mucitlerinden Ken Thompson'ın, “Şüphe durumunda kaba kuvvet kullan” sözünü dile getirdiği bildirildi.Muhtemelen bunu sadece ha olarak ciddi olarak düşünmüştü, ancak orijinal Unix çekirdeğinin basit, sağlam ve taşınabilir algoritmaları kırılgan “akıllı” olanlara tercih etmesi, bu işletim sisteminin başarısında önemli bir faktör gibi görünüyor.Yazılım tasarımındaki diğer pek çok travma gibi, kaba kuvvet ile karmaşık, hassas ayarlanmış akıllılık arasındaki seçim, hem mühendislik meraklısı hem de hassas estetik yargılama gerektiren zor bir seçimdir.

b.Hem mühendislik meraklısı hem de estetik yargı kazandıkça şüphesiz farklı kararlar alacaksınız.Bu, yukarıdaki "a" nın geçerliliğini etkilemez.