In the last episode (Jan 20), Balazs Rauznitz said:
> On Tue, Jan 20, 2004 at 08:23:32PM +0100, Aleksandar Bradaric wrote:
>
> mysql> explain select count(*) from sex where id>459000 and id <=460000 and sex =
> 'M';
> +-------+------+------------------------------------+-----------+---------+-------+--------+-------------+
> | table | type | possible_keys | key | key_len | ref |
> rows | Extra |
> +-------+------+------------------------------------+-----------+---------+-------+--------+-------------+
> | sex | ref | id_index,sex_index,sex,id,sex_both | sex_index | 2 | const |
> 506151 | Using where |
> +-------+------+------------------------------------+-----------+---------+-------+--------+-------------+
> 1 row in set (0.00 sec)
Try hinting it to use the compound index, or maybe recreate the index
with the fields in the other order (sex,id), so it can do a straight
range scan. With an (id,sex) index, it should be able to do a range
scan but still has to discard half the records.
What's the difference between id, and id_index, and sex and sex_index?
"SHOW KEYS FROM sex" will list the subparts of all the keys, and their
cardinality (you may have to ANALYZE the table first).
--
Dan Nelson
[EMAIL PROTECTED]
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]