Tema: spor query
Pogledajte određenu poruku
Staro 31. 07. 2007.   #1
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default spor query

baza je mysql, a query je:
Kôd:
$sql = "(
		SELECT ID, Title, SUBSTRING(Body,1,180) AS tekst, db_num, MATCH (Title,Body) AGAINST ('$q') AS relevance
		FROM articles
		WHERE
				Title LIKE '%$subdomain%' AND
				MATCH (Title,Body) AGAINST ('$q')
		LIMIT ".NUM_RESULTS_ARTICLES."
)
UNION
(
		SELECT ID, Title, SUBSTRING(Body,1,180) AS tekst, db_num, MATCH (Title,Body) AGAINST ('$q') AS relevance
		FROM articles2
		WHERE
				Title LIKE '%$subdomain%' AND
				MATCH (Title,Body) AGAINST ('$q')
		LIMIT ".NUM_RESULTS_ARTICLES."
)
UNION
(
		SELECT ID, Title, SUBSTRING(Body,1,180) AS tekst, db_num, MATCH (Title,Body) AGAINST ('$q') AS relevance
		FROM articles3
		WHERE
				Title LIKE '%$subdomain%' AND
				MATCH (Title,Body) AGAINST ('$q')
		LIMIT ".NUM_RESULTS_ARTICLES."
)
ORDER BY relevance DESC
LIMIT ".NUM_RESULTS_ARTICLES;"
poenta je da postoje tri velike tabele(~1GB svaka) sa textovima, i da treba naci textove, ali uz uslov da se $subdomain obavezno pojavljuje u naslovu texta (subdomen je isto neki keyword, da vas ne zbunjuje). Body je tipa text, a Title je varchar(255)

E sad, kad se radi samo fulltext search to radi jako lepo i brzo, ali kad sam dodao ovaj dodatni uslov za Title server je poceo da se vuce stravicno. To mi je extra cudno jer EXPLAIN kaze da se u oba slucaja koristi isti FULLTEXT index, a LIKE ionako ne moze da koristi index, znaci samo treba da isfiltrira dodatno Title polje. Medjutim, nesto se tu mysql-u ne doapada...

Da li postoji neki bolji nacin da se ovo odradi?
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat