ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[https://www.cnblogs.com/moonsoft/p/10418629.html](https://www.cnblogs.com/moonsoft/p/10418629.html) 转自: https://www.cnblogs.com/qmfsun/p/4881919.html `前言:` `最近准备深入的学一下mysql,包括各种引擎的特性、性能优化、分表分库等。为了方便测试性能、分表等工作,就需要先建立一张比较大的数据表。我这里准备先建一张千万记录用户表。` `步骤:` `1` `创建数据表(MYISAM方式存储插入速度比innodb方式快很多)` `数据表描述` `数据量:``1``千万` `字段类型:` `id :编号` `uname:用户名` `ucreatetime: 创建时间` `age:年龄` `CREATE TABLE usertb(   ` `id serial,    ` `uname  varchar(``20``) ,   ` `ucreatetime  datetime  ,   ` `age  ``int``(``11``))   ` `ENGINE=MYISAM ` `DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci   ` `AUTO_INCREMENT=``1`    `ROW_FORMAT=COMPACT;    ` `2` `创建插入数据存储过程 ` `delimiter $$ ` `SET AUTOCOMMIT = ``0``$$   ` `create  procedure test1()  ` `begin` `declare v_cnt decimal (``10``)  ``default` `0` `; ` `dd:loop            ` `insert  into usertb values         ` `(``null``,``'用户1'``,``'2010-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户2'``,``'2010-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户3'``,``'2010-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户4'``,``'2010-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户5'``,``'2011-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户6'``,``'2011-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户7'``,``'2011-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户8'``,``'2012-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户9'``,``'2012-01-01 00:00:00'``,``20``),         ` `(``null``,``'用户0'``,``'2012-01-01 00:00:00'``,``20``)             ` `;                   ` `commit;                     ` `set v_cnt = v_cnt+``10` `;                            ` `if`  `v_cnt = ``10000000` `then leave dd;                           ` `end ``if``;          ` `end loop dd ; ` `end;$$   ` `delimiter ;    ` `3` `执行存储过程` `call test1;    ` `耗时:用i5的笔记本执行也只需要``95``秒的时间` `4` `根据需要修改engineer (非必要步骤,如果不需要转换无需操作)` `alter table usertb engine=innodb;    ` `耗时:用i5的笔记本执行也只需要``200``秒的时间` **测试实践:** 查询出数量:1000万条数据 select cout(\*) from testtb; 耗时22.456s ![](https://img2018.cnblogs.com/blog/1427721/201902/1427721-20190222152155242-515728233.png) 又执行一遍,select count(\*) from usertb; 秒查出: ![](https://img2018.cnblogs.com/blog/1427721/201902/1427721-20190222152324495-841684045.png)