本文的操作均使用 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 ;
运行查询后, 在数据库就会有这个创建数据的存储过程:
进入到这个存储过程, 点击运行过程:
在弹出的 参数"total" 输入想要生成的数据记录数量, 参数 "tb_name" 输入 test (本文最开始创建的数据库) 或其他数据表.
博主尝试了创建 50 万条数据记录, 但是速度太慢了没耐心等结果. 所以本文仅仅测试生成了 5 万条记录.
5 万条记录的耗时是 5 分钟左右.
感觉速度比博主之前写的这篇文章的方法还慢: 使用 Laravel 填充一百万假数据