On Tuesday 18 March 2003 02:47, dreq jkj wrote:
> I have trouble figuring out how the indices are used when making a query
> that uses OR-operator.
>
> If I have the following table:
>
> create table testing(
> id int unsigned not null primary key auto_increment,
> idx1 int unsigned not null,
> idx2 int unsigned not null,
> index(idx1),
> index(idx2));
>
> In this query i expect mySQL to use one of the two indices to speed up the
> query, but It doesn't.. :(
> select * from testing where idx1=0 or idx2=1;
Yes, MySQL doesn't use indexes in this way:
http://www.mysql.com/doc/en/Searching_on_two_keys.html
> The thing I'm thinking about instead is the following query:
> select * from testing where idx1=0
> UNION
> select * from testing where idx2=1;
>
> It looks like this does speed up the query, but is this the way to go???
> Is this a weaknes in mySQL or have I forgotten something?
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Egor Egorov
/ /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
/_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net
<___/ www.mysql.com
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php