XOYO
(XOYO)
新手上路

初级会员
UID 64538
精华
0
积分 3
帖子 5
金钱 3 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2005-6-3
状态 离线
|
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
请助,我的索引为什么失效了?
我把example表的dateline项设为索引,查询常以">"某个值为条件进行,因为每次都需要批量操作,所以每次批量操作行的dateline项的值都是相同的值, 当每次以大于某个值为条件查询时,索引根本就没有起到作用,但如果用等于(=)为条件时,索引却正常了,请看例子
mysql> explain select * from dayincome where dateline=1149955004;
+-----------+------+---------------+----------+---------+-------+------+--------
-----+
| table | type | possible_keys | key | key_len | ref | rows | Extra
|
+-----------+------+---------------+----------+---------+-------+------+--------
-----+
| dayincome | ref | dateline | dateline | 4 | const | 3 | Using w
here |
+-----------+------+---------------+----------+---------+-------+------+--------
-----+
1 row in set (0.00 sec)
mysql> explain select * from dayincome where dateline>1149955004;
+-----------+------+---------------+------+---------+------+------+-------------
+
| table | type | possible_keys | key | key_len | ref | rows | Extra
|
+-----------+------+---------------+------+---------+------+------+-------------
+
| dayincome | ALL | dateline | NULL | NULL | NULL | 31 | Using where
|
+-----------+------+---------------+------+---------+------+------+-------------
+
1 row in set (0.00 sec)
根据SQL语句优化的原则:"有大量重复值、且经常有范围查询( > ,< ,> =,< =)和order by、group by发生的列,可考虑建立群集索引" 但这个不针对mysql数据库啊,我查阅了mysql手册,上面提到散列(hash)索引,不知道有没有效果,没有试过,因为我的表用的默认MyISAM类型
|
|