OK I tried this, so '+music +mix +2001' instead of this '"music mix
2001"' and the SQL time is the same ~21 sec.

select artists.name , cds.title, tracks.title from artists, tracks, cds 
where 
MATCH (artists.name) AGAINST ('madonna' IN BOOLEAN MODE) 
and MATCH (cds.title) AGAINST ('+music +mix +2001' IN BOOLEAN MODE)
and artists.artistid = cds.artistid AND artists.artistid =
tracks.artistid AND cds.cdid = tracks.cdid





-----Original Message-----
From: Chuck Gadd [mailto:[EMAIL PROTECTED] 
Sent: Monday, December 08, 2003 21:50 
To: Uros Kotnik; [EMAIL PROTECTED]
Subject: Re: Speed difference between boolean full-text searches and
full-text searches

Uros Kotnik wrote:

> It makes sense, but Sergei G. said : 
> "And are you sure the numbers are correct, the first query - the one
> without "IN BOOLEAN MODE" - is faster ? I would expect the opposite."
> 
> I guess that for my DB I can't expect satisfied "in boolena mode"
times
> ?
> But also when searching without "in boolean mode" and include search
> criteria from TRACKS table, 13,841,930 rows , like "AND MATCH (
> tracks.title) AGAINST ('remix')" 
> I get ~10 sec. times.
> Am I doing something wrong or this results are correct for this amount
> of data, I would be satisfied with  0.5 - 1 sec. times

If I'm not mistaken, IN BOOLEAN MODE simply changes the parser
logic.  It tells MySql to process the "special" characters, like
+-*"".   I don't think it's the IN BOOLEAN MODE that is causing
the slow query, but the fact that you are looking for the phrase.

If you were to do

SELECT artists.name, cds.title, tracks.title FROM artists, cds, tracks
WHERE artists.artistid = cds.artistid AND artists.artistid =
tracks.artistid AND cds.cdid = tracks.cdid AND MATCH (artists.name)
AGAINST ('madonna' IN BOOLEAN MODE) AND
MATCH (cds.title) AGAINST ('+music +mix +2001"'IN BOOLEAN MODE)

Then you'd probably still get the fast search time, since the query
simply requires all three words.   MySql can resolve this just using
the index.


In your example, the BOOLEAN MODE for

MATCH (artists.name) AGAINST ('madonna' IN BOOLEAN MODE)

isn't doing anything special, since you aren't using any
special chars to modify the search expression.







-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to