- 论坛徽章:
- 0
|
我有一张数据表:
CREATE TABLE `counter110` (
`date` mediumint(9) NOT NULL default '0',
`time` tinyint(4) NOT NULL default '0',
`cgi` int(11) NOT NULL default '0',
PRIMARY KEY (`cgi`,`date`,`time`),
KEY `date` (`date`,`time`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
存入数据后,约100万条,打explain select * from counter110 where date>=60214 and date<=60216,type是range,key是date,
但是打explain select * from counter110 where date>=60213 and date<=60216,type就变成ALL了,key是null。
同时date取值60211到60213就是对的,但取60210到60213就错了。
为什么会这样啊?我试过修表,优化表,还有use index(date),发现都没有用,难道对整形建索引后,对于>=和<=,的搜索,MYSQL会不确定的使用index?
本机配置PIII600,256M内存,rh9,MYSQL 4.1.14
急盼答复,谢谢。 |
|