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?