SORU
6 EKİM 2008, PAZARTESİ


Nasıl veritabanı DAHİLİ olarak çalışır?

Son birkaç yıldır veritabanları ile çalışıyorum ve bunları kullanarak oldukça yetkin aldım bunu düşünmek istiyorum. Ancak okuyordum, son zamanlarda hakkında Joel'in Law of Leaky Abstractions ve fark ettim ki o bile yazabilirim bir sorgu için çok fazla bir şey istiyorum bir veritabanı, hiçbir fikrim yok nasıl veritabanı aslında yorumlar sorgu. Herkes iyi bir makale veya kitap biliyor veritabanları içten işe nasıl açıklar?

İlgilendiğim bazı belirli şeyler vardır:

  • Bir veritabanı aslında bir deyim maçlar ne olduğunu bulmak için ne yapar?
  • Nasıl bir veritabanı yorumlamak bir farklı birkaç ile bir sorgu için katılma "nerede key1 = key2" ifadeleri?
  • Nasıl veritabanı tüm hafıza deposu mu?
  • Nasıl dizinleri saklı?

CEVAP
6 EKİM 2008, PAZARTESİ


Bir veritabanı aslında ne yapıyor bir seçin maçlar ne öğrenmek deyim?

Açık sözlü olmak gerekirse, kaba kuvvet meselesi. Sadece, veritabanındaki her aday kaydı ile okur ve alanları ifade eşleşir. Eğer varsa, adı "select * from tablo= '", kelimenin tam anlamıyla her kayda geçiyor, tuttu "" alan ve kıyaslanamaz''. fred adı' fred

"Tablo.şimdi Eğer adı" alan dizine, sonra veritabanı (muhtemelen, ama şart değil) Endeksi ilk bulmak için kullanacak gerçek filtre uygulamak için aday kayıtları için.

Bu aday kayıt sayısını ifade uygulamak için azaltır, aksi halde sadece biz bulmuşlardır "", yani her satır okuyun. tablo taraması

Ama temelde, ancak kayıtların gerçek filtre ifadesi nasıl uygulanır ayrıdır aday bulur, ve, açıkçası, yapılabilecek en akıllıca iyileştirmeleri vardır.

Nasıl bir veritabanı yorumlamak bir birleşim birkaç ile bir sorgu için farklı "nerede key1 = key2" ifadeleri?

Peki, yeni bir birleşim yapmak için kullanılan bir "filtre uygulanan, üzerine. sahte tablo Bu yüzden, filtre kriterleri var ve bu kriterleri katıl. Katılmak kriterleri "sahte tablo" ve daha sonra filtre karşı uygulanır. bu oluşturmak için kullanılır Birleştirme yorumlarken, filtre -- kaba kuvvet karşılaştırmalar ve dizin olarak aynı konu için alt yapı için okur yine"". sahte tablo

Nasıl veritabanı tüm mağaza mu bellek?

İyi bir veritabanı için tuşlara/Ç arabellekleri ben nasıl yönettiğini. Ama temelde disk blokları için RAM blokları ile eşleşir. Modern sanal bellek yöneticileri ile, basit bir veritabanı bellek arabellek yöneticisi olarak VM güvenebilirsiniz neredeyse. Yüksek son DB tüm bu kendileri yapmak.

Nasıl dizinleri saklı?

Genellikle B Ağaçları, Araştır derim. Yıllardır var olan bir düz ileri bir teknik. Bu faydası en dengeli ağaç ile paylaştı: artı tüm yaprak düğümleri kolayca düğüm düğüm geçiş anahtarı sipariş edebilirsiniz bağlantılı düğümler için tutarlı erişim. Böylece, bir dizin ile, satırlar "iyileştirmeler" veritabanında belirli alanlar için, ve veritabanı bilgileri kullanabiliyorlar yarar. sıralanmış düşünülebilir Bu farklı, diyelim ki, sadece belirli bir kayda hızlı bir şekilde elde etmenizi sağlayan bir dizin için bir karma tablo kullanarak. B-Ağaç hızlı değil sadece sıralı bir liste içinde bir noktada, belirli bir kayıt için, ama olsun.

Veritabanında saklama ve indeksleme satır gerçek mekaniği gerçekten çok yalındır ve iyi anlaşılır. Oyun tamponları yönetmek ve SQL sorgu kaldıraç etkili yolları dönüştürmede bu temel depolama cümleler.

Daha sonra, depolama deyim üstüne multi-kullanıcılar, kilitleme, günlük ve hareketleri bütün karmaşıklığı var.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 365multimedia

    365multimedi

    26 ŞUBAT 2009
  • Paul Schroder

    Paul Schrode

    30 Kasım 2007
  • ThreadBanger

    ThreadBanger

    2 Mart 2007