我可以: 邀请好友来看>>
ZOL论坛 > 技术论坛 > MySQL论坛 > Datetime类型字段上的索引和记录条数有关吗?
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

Datetime类型字段上的索引和记录条数有关吗?

50浏览 / 3回复

wiyipi

wiyipi

2
精华
138
帖子

等  级:Lv.5
经  验:3341
  • Z金豆: 0

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:
  • 注  册:2008-03-18
  • 登  录:2009-06-29
发表于 2009-05-18 16:56:26
电梯直达 确定
楼主
report 表索引字段 calldate(datetime)

查询1:
explain SELECT * FROM report WHERE calldate >= '2009-04-09 00:00:00';

+----+-------------+----------+------+---------------+------+---------+------+--------+-------------+
| id | select_type | table    | type | possible_keys | key  | key_len | ref  | rows   | Extra       |
+----+-------------+----------+------+---------------+------+---------+------+--------+-------------+
|  1 | SIMPLE      | report  | ALL  | calldate      | NULL | NULL    | NULL | 128305 | Using where |
+----+-------------+----------+------+---------------+------+---------+------+--------+-------------+
1 row in set (0.00 sec)

查询2:
explain SELECT * FROM report  WHERE calldate >= '2009-04-10 00:00:00';

+----+-------------+----------+-------+---------------+----------+---------+------+-------+-------------+
| id | select_type | table    | type  | possible_keys | key      | key_len | ref  | rows  | Extra       |
+----+-------------+----------+-------+---------------+----------+---------+------+-------+-------------+
|  1 | SIMPLE      | report  | range | calldate      | calldate | 8       | NULL | 23029 | Using where |
+----+-------------+----------+-------+---------------+----------+---------+------+-------+-------------+
1 row in set (0.00 sec)


为什么两个时间字段的范围不一样就导致了索引的使用

siiop

siiop


精华

帖子

等  级:Lv.5
经  验:4225
发表于 2009-05-18 16:56:46 1楼
对 楼主 趣昧鱼 说:
=========================

呃,这正是mysql聪明的地方,不排除小聪明的可能


精华

帖子

等  级:Lv.1
经  验:30
发表于 2009-05-18 16:56:57 2楼
我把2008-04-09以前的数据删除,发现记录在2009-04-17是个界限,这个真的头一次碰到很郁闷的事。。

uthg

uthg


精华

帖子

等  级:Lv.4
经  验:2142
发表于 2009-05-18 16:57:15 3楼
此时mysql优化器认为整表的读取更优,所以没有使用索引。
你可以使用
SELECT * FROM report  use index(calldate) WHERE calldate >= \'2009-04-10 00:00:00\';
来强制使用索引
高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表