[]
Database indeksleme
Ortalıkta pek database admin olmayan bir yerlerdeyiz: bir tablomuz var, 20 bin satır civarı, uygulamamız hızlansın istiyoruz, sık sorgulanan tablolarda indeks oluşturalım dedik.
A: Sık sorgulanan query'lere göre her sütun için ayrı indeks oluşturmak gerek (toplam 10 adet sık kullanılan query'mizde a,b,c sütunları baya bir kullanılmış, bunları 3 ayrı indekste derleyelim.)
B: Sık sorgulanan query'lere göre spesifik indeksler olmalı. ("select a,b,c from tablo" çok geçiyor, bu üçüne bir indeks olsun. bi de "select d,e from tablo" da çok kullanılmış, bi indeks de buna olsun)
bunlardan hangisi haklı ? bir de şu var yalnız:
C: abi oracle 50 bin satıra kadar falan şeyine bile takmaz, indeks olmuş olmamış çok bir şey farketmeyecek.
kim haklı ?
A: Sık sorgulanan query'lere göre her sütun için ayrı indeks oluşturmak gerek (toplam 10 adet sık kullanılan query'mizde a,b,c sütunları baya bir kullanılmış, bunları 3 ayrı indekste derleyelim.)
B: Sık sorgulanan query'lere göre spesifik indeksler olmalı. ("select a,b,c from tablo" çok geçiyor, bu üçüne bir indeks olsun. bi de "select d,e from tablo" da çok kullanılmış, bi indeks de buna olsun)
bunlardan hangisi haklı ? bir de şu var yalnız:
C: abi oracle 50 bin satıra kadar falan şeyine bile takmaz, indeks olmuş olmamış çok bir şey farketmeyecek.
kim haklı ?
index ini daha çok where satırına göre belirlersin, a,b,c alanlarını da indexe gömersin, böylece index i bulduğunda veriye de ulaşmış olur, direkt tabloya gitmez.
misal
select a,b from tablo where id=???
id(a,b) şeklinde bir index tanımlarsan maksimum faydayı elde edersin
misal
select a,b from tablo where id=???
id(a,b) şeklinde bir index tanımlarsan maksimum faydayı elde edersin
- vampir akrep (04.10.12 23:43:30)
1