|
SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
13. 08. 2009. | #1 |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
[MySQL] Optimizacija upita, indexi
Pozdrav.
http://rapidshare.com/files/26687315...v.sql.zip.html Sa linka iznad mozete skinuti SQL fajl sa bazom i 3 tabele (njihova struktura i testni podaci). Dakle, 3 tabele u kojima se čuvaju informacje o vijestima, kategorijama i autorima. Princip news sistema. Napisao sam upit koji ispisuje 5 vijesti iz odredjene kategorija koja ima svoje potkategorije. Vijesti su soritrane po pozijama i vremenu objave ukoliko ne bude dovoljno vijesti kojima su označene pozicije, jer upit treba da vrati uvijek 5 redova. Upit je ispod. Kôd:
SELECT v.id, v.naslov, a.ime_prezime, v.mala_slika, v.uvod FROM vijesti v, kategorije k, administratori a WHERE k.kategorija_id = v.kategorija AND v.autor = a.id AND v.tip =1 AND v.media =0 AND v.pozicija IN ( '5', '6', '7', '8', '9', '1000' ) AND k.parent_id IN ( 4, 5 ) AND v.id NOT IN ( 22083, 22075, 22077, 22070 ) AND v.datum_objave <= '2009-08-13 10:58:00' ORDER BY v.pozicija, v.datum_objave DESC LIMIT 5 Na bazu od 20.000 reedova upit se izvrsava u prosjeku nekih 0.3s sto mi je puno jer ovakih upita imam oko 10-tak na naslovnici (razlciite pozicije (v.pozicija) i kategorija (k.parent_id)). EXPLAIN upita vraca: http://www.imagesforme.com/show.php/636527_explain.jpg Ja sam stavio odredjne indexe (vidjećete kada ako pogledate sturkturu tabela iz priloga) koje MySQL i korsiti, tako da je kolona Rows u EXPLAIN tabele sasvim OK. Problem je očigledno kod onog što je napisano u EXTRA koloni. Mislim da bi se ovaj upit trebao brze zvrsavati, no za to mi je potrebna vasa pomoć? Imate li prijedloga kako da podesim indexe? Nadam se da nisam nista propustio spomenuti. Hvala unaprijed. Poslednja izmena od mb_sa : 13. 08. 2009. u 12:23. Razlog: tipfeleri |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
kako rezultate mysql upita najlakse smjestiti u tabelu..? | dejan86 | PHP | 8 | 16. 09. 2009. 00:15 |
MySQL optimizacija | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 2 | 27. 02. 2009. 15:47 |
MySQL - Optimizacija querija | dinke | SQL baze podataka - Sponzor: Baze-Podataka.net | 12 | 18. 06. 2007. 22:39 |
MySQL import - više upita iz fajla ili stringa | Ilija Studen | PHP | 6 | 09. 07. 2006. 16:07 |
potrebna pomoc oko SQL upita | ivanhoe | SQL baze podataka - Sponzor: Baze-Podataka.net | 4 | 10. 02. 2006. 17:09 |