![]()
ufak bir örnek vereyim.
ben 400 bin satırlık bir tabloda öğrenci bilgileri tutuyordum. tckimlik
numarası adı-soyad, okul numarası, okulun sistem tarafından atanmış kodu,
sınıfı, şubesi vs...
örneğin
tckimlik adı - soyadı okul numarası okul kodu sınıf şube
123456 atıf ceylan 226 15 4 A
bu şekilde gelen kayıtlarda tckimlik alanı birincil idi. öğrenci numarasını
indexledim. kayıtlar üzerinde işlem yaparken okul kodu and öğrenci no
şeklinde yapıyordum. o kadar yavaş oluyordu ki cok rahat gözümle takip
edebiliyordum. indexlemeyi yanlış yaptığımı fark ettim, şöyleki: ben sadece
öğrenci numarasını indexlemiştim. oysa ki her okulda 226 numaralı bir
öğrenci bulunuyordu. ve benim indexli kayıt sayım sadece 2 bin civarında idi
(yaklaşık). daha sonra öğrenci numarası ve okul kodu alanlarının ikisini bir
index yaptım. ve artık yüzlerce kat daha hızlı çalışıyordu programım. şu
veya bu alanı indexleyin demiyorum ancak sorgulamalarda veya şarta bağlı
işlemlerde kullanılacak alanların indexlenmesi gerekmektedir. elbetteki
where cümleciğinde hiç kullanmıyacağınız bir alanın indexlenmesi
veritabanını şişirmekten ve yavaşlatmaktan öte bir yararı olmayacaktır.
joinde kullandığınız alanların indexlenmemesi, wherede veya groupta
kullandığınız alanların indexlenmemesi veya az evvel bahsettiğim benim
düştüğüm hataya düşmeniz gibi durumlar veritabanının büyüdükçe
hantallaşmasını ve belli bir noktadan sonra iş yapmaz hale gelmesine neden
olacaktır.
kolay gelsin.
ATıf CEYLAN
23.10.2007 tarihinde Anıl KARADAĞ <anil.karadag_at_gmail.com> yazmış:
>
> Bu konuyu biraz acabilir misiniz? Veritabanı tasarımında acemi
> sayılırım. 200 milyondan fazla veri tutuyorsunuz indexlemeler hakkında
> görüslerinizi merak ediyorum. text kolonlarda karakter sayısı arttıkça
> indexe veri eklemede yavaşlamalar görülüyor diye biliyorum bu doğru mu ?
>
> Bende tek tabloda suan olmasa bile gelecekte milyon veri tutmayı
> planlıyorum. İki text alanımda full index mevcut. Devamlı veri girişi
> gercekleşmektedir.(Günlük 1000 e yakın). Önerebileceğiniz yaklaşımlar
> var mı?
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Wed 24 Oct 2007 - 14:39:10 EEST
![]()