SORU
23 Aralık 2008, Salı


mysql 5.0 dizinleri vs Olmayan Eşsiz Benzersiz

Performans açısından mysql benzersiz ve benzersiz olmayan bir dizin arasındaki fark nedir? Bize 2 sütun açılan bir dizin yapmak istiyorum diyelim, ve kombinasyon eşsizdir, ama benzersiz bir dizin oluşturmak. Bu performansı üzerinde önemli bir etkisi veya bellek mysql kullanır olacak? Aynı soru, birincil anahtar ve benzersiz dizin arasında fark yoktur.

CEVAP
23 Aralık 2008, Salı


EŞSİZ ve BİRİNCİL ANAHTARkısıtlamalarıdeğil , dizinler. Çoğu veritabanı bir dizin kullanarak bu kısıtlamaları uygulamak rağmen. Dizin ek olarak kısıtlamanın ek yükü özellikle izleme ve (varsa) ortaya kasıtsız kopyaladığı zaman düzeltme masrafları size sayarken anlamsız.

Dizinler varsa bir yüksek varsa, genellikle daha etkilidirseçicilik. Bu satır sayısı için farklı değerler sayısı oranıdır.

Sosyal Güvenlik Numarası için bir sütunda örneğin, 1 milyon farklı değerler ile 1 milyon satır olabilir. Bu kadar seçicilik olur 1000000/1000000 = 1.0 (nadir tarihi istisnalar olsa da, SSN benzersiz olmak üzere......).

Ama başka bir sütun o tablo, "cinsiyet" sadece 1 milyon satır üzerinde iki farklı değerlere sahip olabilir. 2/1000000 = çok düşük seçicilik.

BENZERSİZ veya BİRİNCİL ANAHTAR kısıtlaması ile bir dizin 1.0, böylece her zaman bir dizin olabileceği kadar etkili olacak bir seçicilik olduğu garanti edilir.

Birincil anahtar ve benzersiz bir kısıtlama arasındaki farkı sormuştun. Özellikle, birden çok benzersiz kısıtlamaları olabilir, oysa tablo bu kısıtlama tanımı birden fazla sütun içeriyorsa bile) başına yalnızca bir birincil anahtar kısıtlaması olabilir. Bir tablonun bir sütunu birincil anahtar kısıtlamaları sütun boş Değerlere izin vermek gerekir ise boş Değerlere izin verebilir. Aksi takdirde, birincil anahtar ve benzersiz bunların uygulanması ve kullanımı çok benzer.

Hali hazırda yoksa, Bunu kullanmak için olup olmadığı hakkında bir açıklama istedi. MySQL, terim kullanıyorlardepolama motoru. Bu iki depolama motorları arasında ince farklar bir avuç vardır, ama baş olanlar:

  • Bunu geri veya değişiklikler seçebilirsiniz işlemlerini destekler. Hali hazırda etkin bir şekilde her zaman otomatik yürütme.
  • Orada yabancı anahtar kısıtlamaları zorlar. Hali hazırda veya yabancı anahtar kısıtlamaları zorlamak bile mağaza yok.

Eğer bu özellikleri uygulamanız gereken şeyler varsa, Bunu kullanmalısınız.

< / ^ hr .

Yorumlarınız karşılık vermek, o kadar basit değil. Bunu aslında bazı durumlarda daha hızlı hali hazırda, uygulamanızı seçer, güncelleştirmeleri eşzamanlı sorguları, dizinler, tampon yapılandırma, vb karışımı ne bağlıdır.

Depolama motorları çok kapsamlı bir performans karşılaştırma için http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/ bkz. Bunu açıkça olası bir diğer daha hızlı olduğunu söylemek değil, hali hazırda yeterli sıklıkta kazanır.

En performansla ilgili sorulara cevap vermek için tek yoluygulamanız içinher iki yapılandırmaları uygulama kullanarak ve veri temsili bir örneği test etmek ve sonuçlarını ölçmek.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008
  • taliajoy18

    taliajoy18

    12 Temmuz 2011
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006