Pogledajte određenu poruku
Staro 22. 05. 2009.   #1
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default Kako nagovoriti mysql da koristi odredjeni index?

Odmah da kazem znam za USE INDEX(), ali zbog koda za rad sa bazom koji koristimo (MDB2 i nas ORM okolo) mi je jako komplikovano da to prosledim kod upita. Da li postoji neki drugi nacin da se utice na izbor indexa?

O cemu se radi, imam upit koji izglead ovako:
Kôd:
SELECT a.* FROM tbl_Articles as a WHERE a.created<'2009-05-22 13:35:00' AND a.status>0 ORDER BY a.created DESC LIMIT 0,10
i postoji index (`created`, `status`) koji bi trebalo da se koristi, ali mysql bira index (`status`, `created`, `times_read`) verovatno zbog manje duzine kljuca (key_length 4 umesto 8). Posledica je da se radi filesort, umesto sortiranje po indexu, sto je ako sporo jer tabela ima 40K recorda.

jel ima neko ideju kao da prevarim mysql da izabere ipak ovaj drugi kljuc? Neko podesavanje same baze ili tako nesto?
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat