百万级数据表查询速度过慢
峰白 2016-06-23 09:57:59 我有这样一张数据表,结构如下:
CREATE TABLE IF NOT EXISTS AlarmInfo(
Guid VARCHAR(50) PRIMARY KEY NOT NULL
,DBM VARCHAR(6) NOT NULL
,AlarmType INT(12) NOT NULL
,AlarmLevel INT(12) NOT NULL
,BgnTime datetime NOT NULL
,RecoveryTime datetime NOT NULL
,DevType INT(12) NOT NULL
,DevDNA INT(12) NOT NULL
,DataType INT(12) NOT NULL
,IsInMaintain INT(12) NOT NULL
,Dealer VARCHAR(50) NOT NULL
,DealState INT(12) NOT NULL
,DealInfo VARCHAR(1024) NOT NULL
,Elaborate VARCHAR(1024) NOT NULL
,RecoveryInfo VARCHAR(1024) NOT NULL
,InActive INT(12) NOT NULL
,KEY AlarmInfo_Index(DBM,BgnTime,RecoveryTime)
)ENGINE=InnoDB DEFAULT CHARSET=utf8
表里总共有150w左右的记录,每天2000多条,我的查询语句是:
select SQL_NO_CACHE * from alarminfo where DBM = 'TCC' and ((BgnTime >='2015-07-25 15:04:00' AND BgnTime <= '2015-07-26 15:04:00') OR (RecoveryTime >='2015-07-25 15:04:00' AND RecoveryTime <='2015-07-26 5:04:00')) order by bgntime desc;
每次查询差多需要6.6s左右,我索引改了好几次,效果都不是很理想,麻烦各位高手帮看看还能怎么优化才能提高查询速度?