SELECT count( `Id` ) AS `total`
FROM `tablename`
WHERE `createtime` >= '1174585573'
and `createtime` <= '1285592298'
and `state` =2
and `union_id` = 3tablename这个表有2000万条记录
我做一个以上的查询需要20秒请问怎样才能更快点呢?
`Id`是自增的,
其他字段都是int类型是否要建立索引?
应该如果建立索引呢?
FROM `tablename`
WHERE `createtime` >= '1174585573'
and `createtime` <= '1285592298'
and `state` =2
and `union_id` = 3tablename这个表有2000万条记录
我做一个以上的查询需要20秒请问怎样才能更快点呢?
`Id`是自增的,
其他字段都是int类型是否要建立索引?
应该如果建立索引呢?
and `createtime` <= '1285592298'
and `state` =2
and `union_id` = 3 ,条件是由后往前执行,你可以将一次可以过滤最多的条件靠后写,试试看
CREATE INDEX index_A ON tablename(createtime,state,union_id)
毋庸置疑,要建立索引。索引的作用就是提高SELECT效率。应该如果建立索引呢?
这个需要分析你的数据分布,在没有更多信息的情况下,只能说创建一个 (union_id,state,createtime)的复合索引。