Thanks, works like a charm.

Marc

Dathan Pattishall wrote:

Well 1st of all Date_format doesn't allow the use of a key.


Do this.

SELECT ..

WHERE DateLastRevised >= '2004-12-07' AND DateLastRevisted <
'2004-12-08';




-----Original Message-----
From: Marc Dumontier [mailto:[EMAIL PROTECTED] Sent: Tuesday, December 07, 2004 11:34 AM
To: [EMAIL PROTECTED]
Subject: slow date query


Hi,

I'd really appreciate any help in speeding up this type of query

SELECT BindId,RecordType from BrowseData WHERE
DATE_FORMAT(DateLastRevised,'%Y-%m-%d') = '2004-12-07';

On a MYISAM table of 122,000 rows, this query takes very long, in the
neighbourhood of 20 minutes.

i'm using mysqld 4.0.20.

I have an index on DateLastRevised


mysql> show indexes from BrowseData;
+------------+------------+--------------------+--------------+---------
--------+-----------+-------------+----------+--------+------+----------
--+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+------------+------------+--------------------+--------------+---------
--------+-----------+-------------+----------+--------+------+----------
--+---------+
| BrowseData | 0 | PRIMARY | 1 | BindId | A | 122850 | NULL | NULL | | BTREE | |
| BrowseData | 1 | bbs_dlr | 1 | DateLastRevised | A | 122850 | NULL | NULL | | BTREE | |
| BrowseData | 1 | bbs_bid_recordtype | 1 | BindId | A | 122850 | NULL | NULL | | BTREE | |
| BrowseData | 1 | bbs_bid_recordtype | 2 | RecordType | A | 122850 | NULL | NULL | | BTREE | |
+------------+------------+--------------------+--------------+---------
--------+-----------+-------------+----------+--------+------+----------
--+---------+




mysql> explain SELECT BindId,RecordType from BrowseData WHERE
DATE_FORMAT(DateLastRevised,'%Y-%m-%d') = '2004-12-07';
+------------+------+---------------+------+---------+------+--------+--
-----------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+------------+------+---------------+------+---------+------+--------+--
-----------+
| BrowseData | ALL | NULL | NULL | NULL | NULL | 122850 | Using where |
+------------+------+---------------+------+---------+------+--------+--
-----------+
1 row in set (0.00 sec)



thanks, Marc Dumontier


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