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 |
|
![]() |
#1 |
Ivan Dilber
Sir Write-a-Lot
|
![]() Sto se brzine ovog upita tice, problem je u ovom ORDER BY, trebalo bi pokusati da se napravi tako da baza koristi index za sortiranje (prema explainu ne koristi ga trenutno).
Probaj da napravis UNIQUE KEY (`articleID`, `wordID`) ili obrnuto sa (`wordID`, `articleID`), pa vidi da li ce onda explain da ti da "using index". Takodje prebaci brojanje da bude COUNT(*), u mysql manualu preporucuju da se ne navodi polje da bi mogle da se odrade sve optimizacije... Ali u svakom slucaju neces moci da dostignes performanse koje ima full-text search jer on koristi specijalan index optimizovan za tu vrstu pretrage... Imas par mogucnosti: - da vratis myisam, ali ubacis replikaciju na kojoj ces raditi search, da izbegnes lock tabele (po meni to ti je previse komplikacija) - da predjes na Lucene, Solr ili tako neki specijalizovani search engine - da koristis memcached da iskesiras podatke iz baze u jedan lookup hash za sve reci i artikle - da umesto ove 2 tabele koje koristis napravis jednu myIsam tabelu sa spiskom svih reci i articleID-jem za svaku i da onda koristis full-text search na njoj
__________________
Leadership is the art of getting people to want to do what you know must be done. |
![]() |
![]() |
"Hvala" ivanhoe za poruku: |
![]() |
#2 |
Super Moderator
Knowledge base
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
![]() ![]() ![]() |
![]() probacu ovo, deluje logicno, posto upit kombinuje ta dva polja preko GROUP BY...
Poslednja izmena od Peca : 16. 06. 2012. u 21:10. |
![]() |
![]() |
![]() |
|
|