Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Optimizacija upita sa ORDER BY nad velikom tabelom

  • 2 odgovora
  • 2.467 pregleda

Najnovija ↓

Optimizacija upita sa ORDER BY nad velikom tabelom 17.06.2006. u 16:54 · pre 248 meseci
izmenjeno 1 put, poslednji put Gojko Vujovic 17.06.2006. u 17:30
  1. Gojko Vujovic17.06.2006. u 17:30zapis iz teksta poruke
#1

Imam 2 tabele (mysql_4.0) : items sa oko 500000 rekorda, i translacionu tabelu za items (lang_id, item_id, lang_value) nad kojim vrsim klasican where. Cim stavim ORDER BY po bilo cemu, i po primarnom kljucu isto, izvrsenje upita se drasticno poveca. Sa < 1s na preko 10sec. Problem je naravno do mysql-a koji ne koristi indexe za order by. I sad me zanima da li neko zna bilo kakvo resenje da mogu da radim sort podataka direktno u bazi, a da resenje bude brzo
Re: Optimizacija upita sa ORDER BY nad velikom tabelom 17.06.2006. u 17:34 · pre 248 meseci #2
Alternativni pristup bi bio presorting (ukoliko se sadržaj tabele ne menja često, pa čak i ako se menja, ima i za to rešenje - ostavljaš "rupe" u order brojkama). Dakle nova indeksirana numerička kolona sa redosledom koji želiš, i onda order by po tome. Možeš da ih nanižeš 1,2,3,4... ili 10,20,30,40 da bi mogao kasnije da ubacuješ nove bez apdejta cele tabele.
Re: Optimizacija upita sa ORDER BY nad velikom tabelom 18.06.2006. u 12:46 · pre 248 meseci #3
Mozes li napisati kako ti izgleda trenutni query? Malo mi je nejasno nad kojom tabelom vrsis ORDER BY - nad items ili nad translations?
Da li uzimas SVE zapise ili limitujes preko LIMIT?
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme