Mysql使用存储过程来造测试数据
文章目录
有时候我们需要对大数据进行测试,本地一般没有那么多数据,就需要我们自己生成一些。下面会借助内存表的特点进行生成百万条测试数据。
创建测试数据表
CREATE TABLE ly_message (
msg_id INT (32),
content VARCHAR (128),
TYPE INT,
creator_id VARCHAR (128),
create_time TIMESTAMP
);
创建存储过程
DELIMITER $$
USE test$$
DROP PROCEDURE IF EXISTS create_data$$
CEATE DEFINER=test@127.0.0.1 PROCEDURE create_data(IN loop_times INT)
BEGIN
DECLARE var INT DEFAULT 0;
WHILE var<loop_times DO
SET var=var+1;
INSERT INTO ly_message (msg_id,content,TYPE,creator_id,create_time)
VALUES (var,CONCAT("cust_",MD5(UUID()),FLOOR(1 + (RAND() * 2))),FLOOR(1 + (RAND() * 2)),MD5(TIME(NOW())+UUID()+RAND()),NOW()) ;
END WHILE;
END$$
DELIMITER ;
实际使用时,需要修改以下几行:
- 第二行:test改成目标表的数据库;
- 第四行:test@127.0.0.1改成实际的用户名和mysql的IP地址
调用存储过程
use test;
delete from ly_message;
call create_data(10000000);
实际使用时,需要修改以下几行:
- 第一行:test,改成目标表的数据库;
- 第三行:10000000,改成测试数据的条数; 喝杯茶,等待执行完成。