[ NenadS @ 26.04.2018. 14:43 ] @
Imam sledeci upit:

Code:
EXPLAIN SELECT `content`.*, MATCH (`content_search`.`titles`, `content_search`.`keywords`, `content_search`.`descriptions`) AGAINST ('today') AS `score` FROM `content` JOIN `content_search` ON `content_search`.`content` = `content`.`record_num` WHERE MATCH (`content_search`.`titles`, `content_search`.`keywords`, `content_search`.`descriptions`) AGAINST ('today') > 3


U extras dobijam sledece:

Code:
Ft_hints: sorted, rank > 3


Ako upit izmenim tako sto mu dodam HAVING `score` pre > 3:

Code:
EXPLAIN SELECT `content`.*, MATCH (`content_search`.`titles`, `content_search`.`keywords`, `content_search`.`descriptions`) AGAINST ('today') AS `score` FROM `content` JOIN `content_search` ON `content_search`.`content` = `content`.`record_num` WHERE MATCH (`content_search`.`titles`, `content_search`.`keywords`, `content_search`.`descriptions`) AGAINST ('today') HAVING `score` > 3


u tom slucaju u extras dobijam sledece:

Code:
Ft_hints: sorted


Do sada nisam koristio fulltext search pa ako bi neko mogao da mi objasni razliku izmedju ova dva upita i koji je efikasniji i brzi?

Ono sto sam ja uspeo da nadjem je da ako koristim HAVING klauzulu, ona se odnosi na rezultate nakon selektovanja redova pa bi po toj logici mozda prva opcija bila efikasnija jer ne mora da vrati sve match-ovane rezultate pa da onda ostavi samo one koje imaju score > 3. Da li sam u pravu?

Hvala!