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

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分钟,耐心等待。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容