MySQL测试环境准备&2分钟插入100万条测试数据

环境准备

安装包方式
  • 网上资料很多,请自行百度/谷歌搜索。
Docker方式
  • 安装Docker
    Docker基础学习

  • 启动MySQL

    1. 拉取镜像
      docker pull mysql:5.7
    2. 启动容器
      docker run -p 3306:3306 --name mysql-local -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
      PS:端口:3306 用户名:root 密码:123456
    3. 查看容器
      docker ps
  • 连接MySQL

    1. Navicat
    2. DataGrip

数据准备

利用存储过程
  • 建表语句
create table if not exists test_temp
(
    test_id     int auto_increment primary key,
    field_1     varchar(20),
    field_2     varchar(20),
    field_3     bigint,
    create_date date
);
  • 存储过程
drop procedure if exists test_insert;
create procedure test_insert(n int)
begin
    declare v int default 0;
    SET AUTOCOMMIT = 0;
    while v < n
        do
            insert into test_temp(field_1, field_2, field_3, create_date)
            values (concat('testing',v),
                    substring(md5(rand()), 1, 10),
                    floor(rand() * 1000000),
                    adddate('1970-01-01', rand(v) * 10000));
            set v = v + 1;
        end while;
    SET AUTOCOMMIT = 1;
end;

PS: SET AUTOCOMMIT 是为了最终一次性提交事务,避免每次插入数据都开启一次事务花费时间。

  • 插入数据
call test_insert(1000000);

PS: 最终耗时2分18秒插入100万条数据,为了随机生成参数在存储过程中使用了一些函数,如果对插入数据质量要求不高,可以直接将参数写死,这样insert速度会更快。
test> call test_insert(1000000)
[2021-08-29 11:54:38] completed in 2 m 18 s 286 ms

编写测试代码
  • 此方式需要配置MySQL的连接信息,然后利用API编写测试代码插入数据,此外还有可能遇到MySQL驱动包的版本依赖问题,不推荐。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值