mysql千万级数据量根据索引优化查询速度

2017-09-06  本文已影响0人  丶Assassin丨

64位windows。

1:创建一张测试表

DROP TABLE IF EXISTS `test_user`;

CREATE TABLE `test_user` (

`id` bigint(20)  PRIMARY key not null AUTO_INCREMENT,

`username` varchar(11) DEFAULT NULL,

`gender` varchar(2) DEFAULT NULL,

`password` varchar(100) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

存储引擎使用MyISAM是因为此引擎没有事务,插入速度极快,方便我们快速插入千万条测试数据,等我们插完数据,再把存储类型修改为InnoDB。

2:使用存储过程插入1千万条数据

create procedure myproc()

begin

declare num int;

set num=1;

while num <= 10000000 do

insert into test_user(username,gender,password) values(num,'保密',PASSWORD(num));

set num=num+1;

end while;

end

call myproc();

由于使用的MyISAM引擎,插入1千万条数据,仅耗时246秒,若是InnoDB引擎,插入100万条数据就要花费数小时了。

然后将存储引擎修改回InnDB。使用如下命令:  alter table test_user engine=InnoDB;此命令执行时间大约耗时5分钟,耐心等待。

上一篇 下一篇

猜你喜欢

热点阅读