I was a little to quick with the send button.

Can you do a query like this:

(I know that the * syntax is not correct, but is there something equivalent to it?

SELECT from cars
WHERE
        make=5 AND
        model=* AND
        body_color=7 AND
        tire_type = * AND
        hub_caps_type = 1


If you could perform a query like the one above, would MySQL still use the multi-column index that I set up?

-James


On Apr 24, 2007, at 4:47 PM, James Tu wrote:

What do you guys think of this approach...

Always query on all 5 columns...and then create a multicolumn index using all 5 columns?

-James



On Apr 24, 2007, at 11:42 AM, James Tu wrote:

Thanks Mike.
So let's say I have in index on each of the columns below...and I do a search for

make=5
model=2
body_color=7
tire_type=11
hub_caps_type=1

MySQL will only pick one of them right? Let's say it picks make_index. Then what does it do? Does it scan the entire set of results returned by make=5 to match the other criteria?

-James


On Apr 23, 2007, at 5:49 PM, mos wrote:

James,
A lot depends on how many rows you are searching on. If you only have a couple thousand rows, then a table scan will still be fast. If you are searching more rows, say more than 10,000, then using the proper index will speed things up. Using a compound index is only useful if the user is searching on at least the first field of the index. For now, your best bet is to build an index on each of the commonly searched columns and MySQL will choose the best index for the search.

Mike

At 11:16 AM 4/23/2007, James Tu wrote:
I have a table which will be searched via some of the fields in the
column.

An example of the list of searcheable columns:

make
model
body_color
tire_type
hub_caps_type


The thing is that people might do a search using one or many of the
fields as criteria.
For example someone might search for :
body_color = 1 AND tire_type = 11

or just
model = 22

I read that MySQL only uses one index when it performs a query.  I
did an EXPLAIN and it appears that only one of the indices is used.
What is the proper way to setup indices in this case?
Shoud I add an Index for each of these fields OR create a multicolumn
index using all of these fields?

-James





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

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





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





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql? [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