目标:查询8万条数据所需要的时间控制在5秒以内。 概述:创建了3个表分别进行了测试 ,但结果都不太理想。另外 为什么data_04不加索引时,查询速度别其他2个表快??还需要怎样进行优化?????一 表基本信息三、分析结果
二 数据表结构
CREATE TABLE `data_03` (
`incid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一序号',
`adate` date DEFAULT NULL ,
`atime` time DEFAULT NULL ,
`elec_1` varchar(20) DEFAULT NULL ,
`elec_2` varchar(20) DEFAULT NULL ,
`elec_3` varchar(20) DEFAULT NULL ,
`evon_1` varchar(20) DEFAULT NULL ,
`evon_2` varchar(20) DEFAULT NULL ,
`wpressure` varchar(20) DEFAULT NULL ,
`input_1` varchar(20) DEFAULT NULL ,
`input_2` varchar(20) DEFAULT NULL COMMENT ' ',
`input_3` varchar(20) DEFAULT NULL COMMENT ' ',
`input_4` varchar(20) DEFAULT NULL COMMENT ' ',
`output_1` varchar(20) DEFAULT NULL COMMENT '出 ',
`output_2` varchar(20) DEFAULT NULL COMMENT '出 ',
`output_3` varchar(20) DEFAULT NULL COMMENT '出 ',
`output_4` varchar(20) DEFAULT NULL COMMENT '出 ',
PRIMARY KEY (`incid`),
KEY `adateIndex_03` (`adate`),
KEY `atimeindex_03` (`atime`)
) ENGINE=MyISAM AUTO_INCREMENT=2400005 DEFAULT CHARSET=utf8CREATE TABLE `data_04` (
`incid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一序号',
`adate` date DEFAULT NULL COMMENT '日期',
`atime` time DEFAULT NULL COMMENT '时间',
`elec_1` varchar(20) DEFAULT NULL COMMENT '',
`elec_2` varchar(20) DEFAULT NULL COMMENT '',
`elec_3` varchar(20) DEFAULT NULL COMMENT '',
`evon_1` varchar(20) DEFAULT NULL COMMENT '',
`evon_2` varchar(20) DEFAULT NULL COMMENT '',
`wpressure` varchar(20) DEFAULT NULL COMMENT '',
`input_1` varchar(20) DEFAULT NULL COMMENT '',
`input_2` varchar(20) DEFAULT NULL COMMENT '',
`input_3` varchar(20) DEFAULT NULL COMMENT '',
`input_4` varchar(20) DEFAULT NULL COMMENT '',
`output_1` varchar(20) DEFAULT NULL COMMENT '',
`output_2` varchar(20) DEFAULT NULL COMMENT '',
`output_3` varchar(20) DEFAULT NULL COMMENT '',
`output_4` varchar(20) DEFAULT NULL COMMENT '',
PRIMARY KEY (`incid`)
) ENGINE=MyISAM AUTO_INCREMENT=2500001 DEFAULT CHARSET=utf8CREATE TABLE `data_05` (
`incid` int(11) NOT NULL AUTO_INCREMENT,
`ayear` tinyint(1) unsigned NOT NULL,
`amonth` tinyint(1) unsigned NOT NULL,
`aday` tinyint(1) unsigned NOT NULL,
`atime` time NOT NULL,
`elec_1` char(10) NOT NULL,
`elec_2` char(10) NOT NULL,
`elec_3` char(10) NOT NULL,
`evon_1` char(10) NOT NULL,
`evon_2` char(10) NOT NULL,
`wpressure` char(10) NOT NULL,
`input_1` char(10) NOT NULL,
`input_2` char(10) NOT NULL,
`input_3` char(10) NOT NULL,
`input_4` char(10) NOT NULL,
`output_1` char(10) NOT NULL,
`output_2` char(10) NOT NULL,
`output_3` char(10) NOT NULL,
`output_4` char(10) NOT NULL,
PRIMARY KEY (`incid`),
KEY `index_ymd` (`ayear`,`amonth`,`aday`)
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=utf8
二 数据表结构
CREATE TABLE `data_03` (
`incid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一序号',
`adate` date DEFAULT NULL ,
`atime` time DEFAULT NULL ,
`elec_1` varchar(20) DEFAULT NULL ,
`elec_2` varchar(20) DEFAULT NULL ,
`elec_3` varchar(20) DEFAULT NULL ,
`evon_1` varchar(20) DEFAULT NULL ,
`evon_2` varchar(20) DEFAULT NULL ,
`wpressure` varchar(20) DEFAULT NULL ,
`input_1` varchar(20) DEFAULT NULL ,
`input_2` varchar(20) DEFAULT NULL COMMENT ' ',
`input_3` varchar(20) DEFAULT NULL COMMENT ' ',
`input_4` varchar(20) DEFAULT NULL COMMENT ' ',
`output_1` varchar(20) DEFAULT NULL COMMENT '出 ',
`output_2` varchar(20) DEFAULT NULL COMMENT '出 ',
`output_3` varchar(20) DEFAULT NULL COMMENT '出 ',
`output_4` varchar(20) DEFAULT NULL COMMENT '出 ',
PRIMARY KEY (`incid`),
KEY `adateIndex_03` (`adate`),
KEY `atimeindex_03` (`atime`)
) ENGINE=MyISAM AUTO_INCREMENT=2400005 DEFAULT CHARSET=utf8CREATE TABLE `data_04` (
`incid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一序号',
`adate` date DEFAULT NULL COMMENT '日期',
`atime` time DEFAULT NULL COMMENT '时间',
`elec_1` varchar(20) DEFAULT NULL COMMENT '',
`elec_2` varchar(20) DEFAULT NULL COMMENT '',
`elec_3` varchar(20) DEFAULT NULL COMMENT '',
`evon_1` varchar(20) DEFAULT NULL COMMENT '',
`evon_2` varchar(20) DEFAULT NULL COMMENT '',
`wpressure` varchar(20) DEFAULT NULL COMMENT '',
`input_1` varchar(20) DEFAULT NULL COMMENT '',
`input_2` varchar(20) DEFAULT NULL COMMENT '',
`input_3` varchar(20) DEFAULT NULL COMMENT '',
`input_4` varchar(20) DEFAULT NULL COMMENT '',
`output_1` varchar(20) DEFAULT NULL COMMENT '',
`output_2` varchar(20) DEFAULT NULL COMMENT '',
`output_3` varchar(20) DEFAULT NULL COMMENT '',
`output_4` varchar(20) DEFAULT NULL COMMENT '',
PRIMARY KEY (`incid`)
) ENGINE=MyISAM AUTO_INCREMENT=2500001 DEFAULT CHARSET=utf8CREATE TABLE `data_05` (
`incid` int(11) NOT NULL AUTO_INCREMENT,
`ayear` tinyint(1) unsigned NOT NULL,
`amonth` tinyint(1) unsigned NOT NULL,
`aday` tinyint(1) unsigned NOT NULL,
`atime` time NOT NULL,
`elec_1` char(10) NOT NULL,
`elec_2` char(10) NOT NULL,
`elec_3` char(10) NOT NULL,
`evon_1` char(10) NOT NULL,
`evon_2` char(10) NOT NULL,
`wpressure` char(10) NOT NULL,
`input_1` char(10) NOT NULL,
`input_2` char(10) NOT NULL,
`input_3` char(10) NOT NULL,
`input_4` char(10) NOT NULL,
`output_1` char(10) NOT NULL,
`output_2` char(10) NOT NULL,
`output_3` char(10) NOT NULL,
`output_4` char(10) NOT NULL,
PRIMARY KEY (`incid`),
KEY `index_ymd` (`ayear`,`amonth`,`aday`)
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=utf8
说明是按日期倒序的?