于是先给表增加两个索引index_addtime和index_code,结果创建每个索引都用去一分多的时间,创建完成后,再查询记录数量,还是50多秒,索引没有太大作用。
再去检查了一下表结构,
CREATE TABLE `表名` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`code` varchar(10) DEFAULT NULL,
`Close` decimal(20,2) DEFAULT '0.00',
`addtime` int(11) NOT NULL DEFAULT '0' COMMENT '时间',
PRIMARY KEY (`id`),
KEY `index_addtime` (`addtime`),
KEY `index_code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
发现ENGINE=InnoDB这个,由于这个是用于事务处理才加这个,我的表没有用到事务处理,所以把这个改成ENGINE=MyISAM,然后再使用select count(*) from 【表名】查询记录数量,居然是0.000s秒得到记录数量,这两个速度相差太多了。原来问题出现在这里。
大家在创建表的时候,如果用不到事务的话,就不要使用InnoDB,不然太影响速度了。
原创文章,转载请注明来源www.aspbc.com,谢谢。