mysql 存储过程 生成数据_使用 Mysql 存储过程生成5万条数据记录

本文的操作均使用 HeidiSQL.

首先创建一个数据库, 例如取名为 so_cool, 再创建一个 test 表, 表只需要两个字段 id, name(需要更多字段另外加上就好):CREATE TABLE `test` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`name` VARCHAR(64) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',

PRIMARY KEY (`id`) USING BTREE

)

COLLATE='utf8_unicode_ci'

ENGINE=MyISAM

;

数据库引擎也通过上面代码, 或者使用 HeidiSQL 去设置/更改.

在这个库里面创建一个存储过程(直接在 HeidiSQL 执行下面代码的查询):DELIMITER $$

CREATE PROCEDURE create_data(IN total INTEGER, IN tb_name VARCHAR(64))

BEGIN

DECLARE str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

DECLARE this_str VARCHAR(64) DEFAULT '';

DECLARE i int;

set i=1;

while i<=total DO

SET this_str = substring(str, FLOOR(1 + RAND()*62));

set @stmt = CONCAT('INSERT INTO ',tb_name,' (NAME) VALUES("',this_str,'");');

PREPARE stmt_str FROM @stmt;

EXECUTE stmt_str;

DEALLOCATE PREPARE stmt_str;

SET i = i + 1;

end while;

END$$

DELIMITER ;

运行查询后, 在数据库就会有这个创建数据的存储过程:

watermark

进入到这个存储过程, 点击运行过程:

watermark

在弹出的 参数"total" 输入想要生成的数据记录数量, 参数 "tb_name" 输入 test (本文最开始创建的数据库) 或其他数据表.

博主尝试了创建 50 万条数据记录, 但是速度太慢了没耐心等结果. 所以本文仅仅测试生成了 5 万条记录.

5 万条记录的耗时是 5 分钟左右.

感觉速度比博主之前写的这篇文章的方法还慢: 使用 Laravel 填充一百万假数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值