Un beau jour, Nick Gaugler a écrit:

>> Hello,
>>
>> I have aproximately 1,000,000 rows and I would like to do some
>> query. The first one is to get the number of row so I do :
>>
>> mysql> SELECT COUNT(*) FROM `Log`;
>> +----------+
>>> COUNT(*) |
>> +----------+
>>>   969129 |
>> +----------+
>> 1 row in set (0.00 sec)
>
> MyISAM tables keep a specific count of the number of rows in the
> table, that is why this query is extremely fast.
>
>
>> mysql> SELECT COUNT(*) AS `Nb` FROM `Log` WHERE `ID` = 49;
>> +--------+
>>> Nb     |
>> +--------+
>>> 969129 |
>> +--------+
>> 1 row in set (1 min 20.99 sec)
>
> This query is slow, presumably, because MySQL must read all 969129
> rows off of the disk and count them, which will take some time
> depending on the size of the rows and the speed of the system.

Ok, I thought that but I was not sure.

>> But like you can see it, it take a long with the WHERE clause. I use
>> Pentium
>> III at 650 Mhz with 48 Mb of ram. I think that the probleme come
>> from the computer but I'm not shure (I need more RAM ?).
>
> Yes, your ram will make a difference because the file system will do
> caching.  You may want to read up on Indexes in MySQL and see how they
> are used to optimize queries and how they can also be cached in the
> key_buffer.
>
> http://www.mysql.com/doc/en/MySQL_indexes.html
>

Thanks for the link, I go to see it immediately.

PS: For information, I had forgotten to say that I used MySQL 4.1.0-alpha on
Linux
Slackware 9.0

--
Arno


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

Reply via email to