用一张表解决你批量插入千万条数据的烦恼

在性能测试时,常常需要大量的记录数。 MySQL函数较少,在PostgreSQL中有 generate_series 函数,使用十分方便。在MySQL中如何更加方便的处理,可以生成一个序列号表,专门用于批量操作,插入数据。

-- 创建序列表
CREATE TABLE numserial (
	num INT 
);
-- 插入数据
INSERT INTO numserial(num) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
-- 生成0-9999999。
INSERT INTO numserial(num)
SELECT num FROM (
	SELECT (bw.num * 1000000 + sw.num * 100000 + w.num*10000 + q.num*1000 + b.num*100 + s.num*10 + g.num) AS num 
	FROM
		numserial g,numserial s,numserial b,numserial q,numserial w,numserial sw,numserial bw	
) tnum 
WHERE num >= 10
ORDER BY num ASC;

-- 后续可以使用这个序列表,快速生成其他数据
-- SELECT * FROM numserial;

-- 如何使用。 
/*
INSERT INTO store (
	id,storecode,storename,remark
) 
SELECT num, concat('code',num), concat(RAND()*1000000,'name'),left(uuid(),12) FROM numserial WHERE num <= 1000000 and num >= 1;
*/

在这里插入图片描述后续需要插入批量插入测试数据,则可以使用这个序列表。还是很方便的。

-- 通过函数,生成一些有序列,随机数。
SELECT num, concat('code',num), concat(RAND()*1000000,'name'),left(uuid(),12) 
-- 控制数量和范围
FROM numserial WHERE num <= 1000000 and num >= 1;

在这里插入图片描述
一个表能解决的问题,你非要写个存储过程?还不赶紧收藏一下。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值