|
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 |
15. 08. 2009. | #11 |
Bojan Abramovic
Professional
Datum učlanjenja: 16.01.2008
Lokacija: Novi Sad
Poruke: 232
Hvala: 30
47 "Hvala" u 30 poruka
|
Ne razumem se kompletno ali sumnjam na to da sortiranje te kolicine podataka (20000+) uzima vecinu vremena. To pokazuje i "explain" gde se vidi da se koristi temp tabela pa tkzv filesort jer je verovatno previse materijala za direktnu obradu u memoriji.
Neki predlog moze biti da mozda arhiviras vesti pa da takve upite radis na manjim tj samo aktuelnim podacima ili sl. |
15. 08. 2009. | #12 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
Probaj ovo:
ALTER TABLE vijesti ADD INDEX `sortindex` (`pozicija`, `datum_objave`); Onda u upitu u odeljku FROM umesto "vijesti v," stavi "vijesti v FORCE INDEX (sortindex)," Pravi ti temp tabelu zbog sortiranja, a ne uslova.... Edit: i daj screenshot explain-a sa ovim cak i ako ne radi brze (osim ako je identican onom iz prve poruke)
__________________
ActiveCampaign - Email marketing made simple. |
16. 08. 2009. | #13 |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
@degojs
Baza ima preko 20.000 redova, mislim da bi trebalo biti dovljno. @bOkIcA Arhiviranje mi trenutno nije opcija. To je planirano, ali nakon odredjenog vremena, gdje bi baza tada imala duplo i vise redova @srdjevic http://www.imagesforme.com/show.php/640038_explain2.jpg Kada odradim FORCE indexa, mysql ga i koristi. Explain daje nesto bolje rezultate, ali pomaka sa brzinom nema. Upit je izgleda najbrzi kada nema ni jednog indexa. Hvala na dosadasnjoj pomoci. |
16. 08. 2009. | #14 |
Ivan Dilber
Sir Write-a-Lot
|
ako nema pomaka sa brzinom, a koristi index za sortiranje (ne pojavljuje ti se filesort), onda je mozda problem u podesavanju servera, da ne moze da stavi ceo index u memoriju jer mu je dodeljena velicina cache-a premala. Jel baza InnoDB ili MyISAM ili nesto trece?
__________________
Leadership is the art of getting people to want to do what you know must be done. |
17. 08. 2009. | #15 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
Pa da, sad ne koristi temp table, samo filesort... bice da je premali kes... mislim da bi sa vecim kesom ovako radilo bolje od pocetnog.
__________________
ActiveCampaign - Email marketing made simple. |
30. 08. 2009. | #16 | |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
Citat:
Povecanje sort i key buffera je pomoglo, ali problem ovog upita je bio "ORDER by pozicija, datum_objave DESC". Dakle, mysql ne zna da korsiti index ukoliko miksamo ASC i DESC, što je bio kod mene slučaj. Promjena upita na ORDER by pozicija DESC, datum_objave DESC uz kreiran index (pozicija,datum) jer radila dalekoooo brze (reda 0.0010s). Mejdutim, prolbem je sto vo ne vraca željene rezultate. U tabelu sam dodao pozicija_reverse koja je sadrzava suprotne vrijednosti, tako da sam mogao da sortiram po principu pozicjija DESC, datum_obajve DESC. Naravno kreiran je index za (pozicija_reverse,datum_obajve) i upit se izvrsava za 0.0010. Povecanje key buffer size sort buffer size je pomoglo da korsiti index (pozicija,datum) tako da je pomoglo i kod ovog upita i generlano kod upita koji su imali samo sortiranje po datumu. Hvala na pomoci i usescu! |
|
"Hvala" mb_sa za poruku: |
|
|
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 |