SELECT count(*) FROM partner
.vas_cpmt_log
where adate between '2010-07-27' and '2010-07-28'
and serviceid = 'CPKayIVR0100T ' and cptelco = 'dtac';
adate,serviceid, cptelco已经都有索引了
这个条件查询出来有39w...但是差不多要10s
不知道有没有更好的优化方案
表sql为:
[code="java"]
CREATE TABLE vas_cpmt_log
(mtid
varchar(30) NOT NULL,adate
datetime DEFAULT NULL,linkid
varchar(50) DEFAULT NULL,telco
char(4) DEFAULT NULL,cptelco
varchar(10) DEFAULT NULL,channeltype
varchar(10) DEFAULT NULL,serviceid
varchar(20) DEFAULT NULL,srcnumber
varchar(30) DEFAULT NULL,destnumber
varchar(30) DEFAULT NULL,chargenumber
varchar(30) DEFAULT NULL,extendcode
varchar(20) DEFAULT NULL,msgtype
varchar(10) DEFAULT NULL,content
varchar(8000) DEFAULT NULL,rpt_status
int(11) DEFAULT NULL,rpt_remark
varchar(200) DEFAULT NULL,
PRIMARY KEY (mtid
),
KEY serviceid
(serviceid
),
KEY adate
(adate
),
KEY cptelco
(cptelco
)
) ENGINE=InnoDB
[/code]