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]