mysql如何插入一百万条数据

原文链接:这里这里

0.背景
mysql8.0+navicat

1.过程
依次执行下面3条sql语句。

CREATE TABLE test (
id int(7) NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
name varchar(50) NOT NULL COMMENT ‘名称’,
pwd varchar(50) NOT NULL COMMENT ‘密码’,
create_time datetime NULL DEFAULT CURRENT_TIMESTAMP,
update_time datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COMMENT=‘测试表’;
DELIMITER − − 写 函 数 之 前 必 须 要 写 C R E A T E F U N C T I O N t e s t d a t a ( ) R E T U R N S I N T D E T E R M I N I S T I C B E G I N D E C L A R E n u m I N T D E F A U L T 1000000 ; D E C L A R E i I N T D E F A U L T 0 ; W H I L E i < n u m D O I N S E R T I N T O ‘ t e s t ‘ ( ‘ n a m e ‘ , ‘ p w d ‘ ) V A L U E S ( C O N C A T ( ′ 用 户 ′ , i ) , U U I D ( ) ) ; S E T i = i + 1 ; E N D W H I L E ; R E T U R N i ; E N D -- 写函数之前必须要写 CREATE FUNCTION test_data() RETURNS INT DETERMINISTIC BEGIN DECLARE num INT DEFAULT 1000000; DECLARE i INT DEFAULT 0; WHILE i<num DO INSERT INTO `test`(`name`,`pwd`)VALUES(CONCAT('用户',i),UUID()); SET i=i+1; END WHILE; RETURN i; END CREATEFUNCTIONtestdata()RETURNSINTDETERMINISTICBEGINDECLAREnumINTDEFAULT1000000;DECLAREiINTDEFAULT0;WHILEi<numDOINSERTINTOtest(name,pwd)VALUES(CONCAT(,i),UUID());SETi=i+1;ENDWHILE;RETURNi;END
select test_data(); – 执行函数
执行时间大概是 224.350s

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值