2009-07-15 21 views
5

MySQL veya Oracle gibi veritabanlarında, dizinler nasıl uygulanır? Normal dizinlerin B-ağaçları olarak saklandığını düşünüyorum, ancak birden çok sütunda indeksleyen birleşik dizinler hakkında hiçbir şey bulamadım. Kullanılan veri yapılarının isimlerini araştırıyorum, böylece onları araştırabilirim. Daha genel RDB'lerde düzenli ve bileşik dizinler nasıl uygulanır?

, nerede veritabanı uygulama detayları hakkında daha böyle bilgi bulabilirim? Üniversitede o kadar çok ders alacağım ama şu anda merak ediyorum.

cevap

5

Kompozit dizinler B-Ağaçlarını da kullanırlar, sadece anahtarı belirlemek için dizinlenmiş sütunları birleştirirler. Bir yan düğüm olarak, Oracle ayrıca diğer dizin türlerini, yani bitmap dizinlerini de bilir. Ancak bu, endeksli sütun sayısına bağlı değildir.

3

B-ağaç. Her indeks B-ağacı olarak saklanır - hatta kompozit olanlar. Eğer indeksleri düzenlenir konusunda daha fazla araştırma yapmaya arıyorsanız

, B + ağaç ve B * ağaçları içine bakmak. SQL Server için, Kalen Delaney's Inside SQL Server: The Storage Engine, dizin kuruluşu da dahil olmak üzere SQL Server'ın somun ve cıvataları hakkında mükemmel bir kitaptır. Bu yüzden mutlaka kontrol etmelisiniz.

Bir yorumcu, Oracle çok farklı B-ağaçlardan daha yapılandırılmıştır bitmap indeksler, kullanabilirsiniz, ancak bu nadiren geleneksel ilişkisel veritabanı için kullanıldığını işaret eder - onlar OLAP tip uygulamalar için ve durumlarda nerede daha sık alıştığınız Seçilmemiş bir veri grubuna hızlı erişime ihtiyacınız var.

DÜZENLEME: SQL Server, örneğin, şimdi Columnstore Indexes kullanır. Büyük BI tipi iş yükleri ile herhangi bir iş yaparsanız, verilerinizi B Ağacı'ndan tamamen farklı bir şekilde sakladığından, bunlara mutlaka bakmaya değer.

SQL Server, memory optimized tables için şimdi de farklı bir mekanizma kullanıyor ve OLTP tür sorguları için çok yararlı olan bir şey.

+0

Oracle'da bitmap dizinleri olmayanlar hariç. –

+0

Gerçekten bu cevabın neden alçaldığını anlamadım. Sağlanan kitap referansı oldukça faydalıydı ve genellikle kabul edilen cevapla aynı noktayı oluşturdu. –

İlgili konular