I have a table with this structure that has 1.3 million rows:
CREATE TABLE `KeywordST` ( `ID` int(10) unsigned NOT NULL, `BNDate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `BNCount` int(11) NOT NULL default '0', PRIMARY KEY (`ID`), KEY `BNDate` (`BNDate`,`BNCount`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;
I did an explain on a query I use to get data:
explain select count(ID) from KeywordST where BNDate < subtime( now( ) , '12:00:00.0' ) limit 20\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: KeywordST type: rangepossible_keys: BNDate key: BNDate key_len: 4 ref: NULL rows: 743702 Extra: Using where1 row in set (0.01 sec)
It looks ok to me but I'm sure I'm missing something because this query takes 2.82 seconds to execute!
Any ideas?
Edit: I really only need to know if there will be 20 matches or not...hmmm...ref means it's doing a full table scan doesn't it?
CREATE TABLE `KeywordST` ( `ID` int(10) unsigned NOT NULL, `BNDate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `BNCount` int(11) NOT NULL default '0', PRIMARY KEY (`ID`), KEY `BNDate` (`BNDate`,`BNCount`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;
I did an explain on a query I use to get data:
explain select count(ID) from KeywordST where BNDate < subtime( now( ) , '12:00:00.0' ) limit 20\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: KeywordST type: rangepossible_keys: BNDate key: BNDate key_len: 4 ref: NULL rows: 743702 Extra: Using where1 row in set (0.01 sec)
It looks ok to me but I'm sure I'm missing something because this query takes 2.82 seconds to execute!
Any ideas?
Edit: I really only need to know if there will be 20 matches or not...hmmm...ref means it's doing a full table scan doesn't it?
Comment