table:
表:
CREATE TABLE `deal` (
`id` int(11) NOT NULL default '0',
`site` int(11) NOT NULL default '0',
`time` bigint(13) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `site` (`site`),
KEY `time` (`time`,`site`)
) TYPE=MyISAM
sql query:
sql查询:
select * from `deal` where time>0 && site=8
I create index:time
for this query,
我创建了索引:这个查询的时间,
but why this query always using index: site
?
但是为什么这个查询总是使用索引:站点?
explain select * from `deal` where time>0 && site=8
output:
输出:
table type possible_keys key key_len ref rows Extra
deal ref site,time site 4 const 1 Using where
1 个解决方案
#1
5
You need to create composite index site + time
(yes, order matters).
您需要创建复合索引站点+时间(是的,顺序很重要)。
So delete both indexes site
and time
now and create 2:
因此,现在删除索引站点和时间并创建2:
KEY site (site, time)
- 关键网站(网站,时间)
KEY time (time)
- 关键时间(时间)
#1
5
You need to create composite index site + time
(yes, order matters).
您需要创建复合索引站点+时间(是的,顺序很重要)。
So delete both indexes site
and time
now and create 2:
因此,现在删除索引站点和时间并创建2:
KEY site (site, time)
- 关键网站(网站,时间)
KEY time (time)
- 关键时间(时间)