It is currently Wed Feb 08, 2012 5:34 pm

All times are UTC + 2 hours [ DST ]




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: Should I use MATCH AGAINST or LIKE function?
PostPosted: Tue Jan 29, 2008 2:26 pm 
Offline

Joined: Wed Nov 15, 2006 4:00 pm
Posts: 7
Hi,

I have a table of a few columns of text that need to be searched (and the usual dates and primary of course). Something like below:

Column1 - Varchar(255)
Column2 - Varchar(255)
Column3 - Varchar(255)
Column4 - Varchar(255)

There'll only be 2000 rows.

1. So, do I use normal INDEX or FULLTEXT for the columns?

2. If I use LIKE to query, can I index the columns with FULLTEXT, or must only use normal INDEX?

Thanks a lot.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 30, 2008 5:58 am 
Offline

Joined: Sun May 02, 2004 11:34 pm
Posts: 6500
Location: toronto, canada
use the LIKE clause

FULL TEXT is for searching true text fields

_________________
Lostboy

Cat, the other other white meat

Please read Posting Etiquette before posting

You can always try Google


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 30, 2008 6:08 am 
Offline

Joined: Wed Nov 15, 2006 4:00 pm
Posts: 7
Ok, I'll use LIKE.

So for the index of the fields... I use the normal INDEX instead of FULLTEXT right? What if LIKE clause is used to query fields with FULLTEXT index, the index won't be effective?

Thanks.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 30, 2008 6:24 am 
Offline

Joined: Sun May 02, 2004 11:34 pm
Posts: 6500
Location: toronto, canada
check the manual for the index sizes, but i believe that the index is limited to 255 characters which in a large field don't make sense

_________________
Lostboy

Cat, the other other white meat

Please read Posting Etiquette before posting

You can always try Google


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 30, 2008 12:57 pm 
Offline

Joined: Wed Nov 15, 2006 4:00 pm
Posts: 7
So from what I understand here, FULLTEXT index on the fields is not suitable right.

I use LIKE to query the four fields and then return the whole rows with matches. Similar to this:

WHERE field1 LIKE '%example%' OR field2 LIKE '%example%' OR field3 LIKE '%example%' OR field4 LIKE '%example%

all fields are varchar(255) and only 2000 rows

So the best way to index the fields is using normal single column INDEX for each of the fields? or one multiple column INDEX (four fields)?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 30, 2008 8:00 pm 
Offline

Joined: Sun May 02, 2004 11:34 pm
Posts: 6500
Location: toronto, canada
You can create multiple indexes, mysql will pick just one to use, but the optimizer usually picks the most appropriate index to use for that query

_________________
Lostboy

Cat, the other other white meat

Please read Posting Etiquette before posting

You can always try Google


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 2 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to: