Şimdi Ara

MYSQL DA iNDEX KULLANIMI

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
0
Favori
5.251
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar şu mysql için index kullanımını çok aradım ama net bir açıklama bulamadım mesela index kullanımının artıları nelerdir nasıl durumlarda kullanılır hız için önemli bir değişken olduğu kanısındayım ama çok bir bilgim yok bilen varsa kısa bir örnekle açıklarsa çok müteşekkir olurum..........



  • Indeksler sadece görüntüdür. Oluşturulduğunda tablolardan verileri alır. Çalıştırıldıklarında tablolarda arama yapmaz. Bu yüzden sık yapılan select cümleleri için oluşturulurlar. Tablolarda değişiklik yapıldığında (güncelleme kayıt ekleme gibi) indeksler aynı anda güncellenir. Indekslerin içeriği hazır olarak durur. Çalıştırıldıklarında hiç bir işlem yapmadan görüntülenirler. Bu yüzden daha hızlı çalışır. Bilmem anlatabildim mi?
    Kolay gelsin.
  • galiba ne demek istediğini anladım ama bana birkaç örnek verebilirmisin yaygın kullanımıyla ilgili??
    ayrıca saol...........
  • Şölede düşünebilirsin, bir işlem gercekleştirmek istediğinde ve kullanılması gereken verilerde Hdd'nin içinde ise işlemcinin bu verilerle işlem yapabilmesi için Hdd'ye ulaşması gerekir. Fakat bu verilerin sanan görüntüsünün alıpnıp Ram de tutulduğunu düşünürsek işlemci verileri okumak Hdd yerine Ram e bakacaktır. Bu şekilde veri alış veriş hızı artacağı için işlemlerin süreside kısalacaktır.
  • Benzetmeni ve daha önce yazılanları da okudum ve hatta webi çok kurcaladım ama somut bir örnek verilebilirse daha sağlıklı olacağı kanısındayım mesela index kullanımı için mysql sorguları nasıl yani diğer column lar gibi mi sorgularız?????
  • Tablo: ad, soyad, tckimlik, dog_tar, dog_yer, baba_ad, ..... alanlarından oluşuyor diyelim.

    Sadece ad, soyad, tckimlik listeletmek için
    CREATE INDEX indx_Tablo ON Tablo(ad, soyad, tckimlik);

    Aynı tckimlik girilmesini engellemek için.
    CREATE UNIQUE INDEX indx_Tablo_uniq ON Tablo (tckimlik);



    < Bu mesaj bu kişi tarafından değiştirildi asprin -- 24 Nisan 2006; 14:13:11 >
  • Bunu merak ettim doğrusu.İyi bir araştıma yapayım.

    Bu indexlemeyi anlatan yerlerin linklerini bilen var mı
    ingilizce türkçe olabilir
  • Yapay Zeka’dan İlgili Konular
    PHP ile CSS yolu problem
    14 yıl önce açıldı
    index.php anasayfa olur mu?
    11 yıl önce açıldı
    Daha Fazla Göster
  • SQL (Structured Query Language) bazlı sorgularınızda MySQL veya SQLServer veya herhangi bir veritabanı sisteminde indeks kullandığınızda sorgularınızı değiştirmenize gerek yoktur.

    İndeks kullanımı kayıt sayınıza (rowcount) ve kayıt genişliğinize (row length) göre 1-2 kattan 1000 kata kadar performans artışı sağlar.

    İndeks kullanımı için öncelikli olarak WHERE kısmında yer alan '=' operatöründeki operandlar, sonrasında indeksten sağlayacağınız faydaya göre SELECT cümlesi içinde bulunan alanları indeksleyebilirsiniz (çok sık kullanılan az sayıdaki alanı bileşik indeks kullanımıyla asıl tablo verisine erişmeden noktasal getirtebilirsiniz).

    Ayrıca, pratikte JOIN işlemi yapılan tablolarda bulunan FOREIGN KEY ve PRIMARY KEY alanlarının indekslenmesi işlemi genelde hızlandırır (NESTED LOOPS JOIN). ORDER BY kullandığınız sorgularda ilgili alanda indeks olması sıralamayı hızlandırır.

    Bütün bu faydalar indeks güncelleme maliyetiyle gelir. Herhangi bir kayıt eklendiğinde, silindiğinde veya güncellendiğinde tablonun yanısıra tanımlı bulunan ve bu değişiklikten etkilenecek bütün indekslerde de ilgili değişiklikler veritabanı sunucusu tarafından gerçekleştirilir.

    Tablonuzda yoğun değişiklikler yapılmıyorsa (ağırlıklı sorgulama yapılıyorsa) çok miktarda indeks oluşturmak veritabanı yönetim sisteminin sorgu eniyileme (query optimizer) kararlarını iyileştirir.

    İndeks oluşumunda yapısal parametrelerden bir tanesi CLUSTERED veya NONCLUSTERED olmasıdır. 'Range Query' yani '<', '>' operatörlerinin kullanıldığı sorguların sıklıkla kullanıldığı alanların CLUSTERED olarak indekslenmesi faydalı olabilir. Herhangi bir tabloda yalnızca 1 adet CLUSTERED indeks oluşturma hakkınız vardır. Çünkü CLUSTERED indeks oluşturduğunuz anda artık tabloda bulunan veriler 'Heap' yapısı yerine indeks yapısının 'Leaf' seviyesinde sıralı olarak tutulmaya başlanır.

    Bu konuda daha fazla bilgi için 'SQL how to index' yazarak arama yaptırıp bulunan yazılara göz atabilirsiniz.




  • dostum çok saolasın bu konu gerçekten önemliydi dediğin gibi zaten ingilizcede araştıryorum şu an emeğine sağlık........................
  • İndexlemeyi anladığım kadarı ile anlatayım.

    Sizin tablonuz;

    adi    mesaj
    aa    Selamlar
    bb    Sana da Selam
    cc    Selam dostum
    aa    Blabla
    bb    Blablabla
    aa    Blalblablablall
    bb    Blablab

    Burada aa,bb,cc kişilerinin forumda konuşma kayıtları var.
    Eğer bunları indexler iseniz tablonuz şu şekli alır gibi oluyor.

    index adi   mesaj
    1       aa    Selamlar
    2       bb    Sana da Selam
    3       cc    Selam dostum
    4       aa    Blabla
    5       bb    Blablabla
    6       aa    Blalblablablall
    7       bb    Blablab

    Ve ayrı bir yer de de;(Buna sayfa diyelim)
    adi:aa olanın konuşmaları index:1,4,6 da diye kayıt ediyor.
    adi:bb olanın konuşmaları index:2,5,7 da diye kayıt ediyor.
    adi:cc olanın konuşmaları index:3 da diye kayıt ediyor.

    Siz adi aa olanın yazılarını okumak istediğinizde önce index sayfasına soruyorsunuz.Sayfa sizin istediklerinizi tablodan index sütununa göre nokta atışı yaparak çekiyor.Böylece tüm tabloyu okumasına gerek kalmıyor.
    Bunun fazdası kayıt sayısı 1000 leri aşınca daha iyi hissedilmekte.

    NOT:İndexlemeyi tablo iiçin çalıştırır iseniz update,delete gibi işlemleri otomatik olarak devam ettirir.



    < Bu mesaj bu kişi tarafından değiştirildi looter -- 29 Nisan 2006; 16:14:20 >




  • İndeks(INDEX)
    İndeksler tablo ve cluster’lar için kullanılan veri tabanı nesneleridir. Burada amaç aranılan bir kayda daha hızlı erişimdir. Özellikle üzerinde çok arama yapılan alan veya alanlar üzerinde indeks oluşturmak çok etkilidir. İndeks oluşturulduğunda ilgili tablonun kayıtları yer değiştirmez. Sadece ilgili kayıtların kayıt numaraları olarak adlandırılan “rowid” ‘ler alınarak sıralama yapılır.

    Bir tablo üzerinde oluşturulabilecek indeks sayısı sütunların kombinasyonları farklı olduğu müddetçe sınırsızdır. Bir sütun diğer sütunlarla değişik kombinasyonlarda kullanıldığı müddetçe birden fazla indeks içerisinde yer alabilir. Aynı sütun kombinasyonlarının indeksi, faklı indeks ismi kullanarak oluşturulmaya çalışılsa bile gerçekleştirilemez.

    İndeksleme işleminin gerçekleştirilmesinde Oracle çoğunlukla B-tree indeksleme metodunu kullanır. Bunun yanında “hash cluster indexes”, “reverse key indexes”, ve “bitmap indexes” yöntemlerini de kullandığı bilinmektedir.

    İndeksler mantıksal ve fiziksel olarak oluşturuldukları tablodan bağımsızdırlar. Eğer bir indeks silinirse, ilgili tablo zarar görmez, çalışmaya devam eder. Fakat indeks olmadığı için veri erişim süresi artacaktır.

    Oracle bir indeks oluşturulduğunda onu otomatik olarak kullanmaya başlar ve indeksin oluşturulduğu tablodaki silme, güncelleme ve ekleme işlemleri indekse otomatik olarak yansıtılır.

    Not: Oracle dökümanından alınmıştır.



    < Bu mesaj bu kişi tarafından değiştirildi asprin -- 29 Nisan 2006; 16:43:07 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.