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.
|