测试:mysql循环插入上万条范围内的随机数据

时间:2023-01-15 23:24:25

前言:因工作需要经常插入大量数据进行性能测试,故随手记录方便日后巩固和使用。

1.定义存储过程

DELIMITER $$

USE `ilock`$$

DROP PROCEDURE IF EXISTS `insert_lock`$$

CREATE DEFINER=`root`@`%` PROCEDURE `insert_lock`()
BEGIN
  DECLARE i INT DEFAULT 0;
  WHILE i <=50 DO
  INSERT INTO iodn_lock(lock_name,longitude,latitude,create_time,city_id,area_id) VALUES(CONCAT('500W',i),FLOOR(80 + (RAND() * 40)),FLOOR(22 + (RAND() * 18)),NOW(),80,143);
  SET i = i + 1;
  END WHILE;
END$$

DELIMITER ;

2.调用存储过程

call insert_lock()

注意:i<10000是控制插入数据的条数,本人测试循环插入1万条数据,大概执行时间为1分钟28秒左右。

函数  concat(x,y,z):生成字符进行相加连接

          floor(10):生成随机生成小于10的整数

     rand():生成随机生成0-1之间的浮点数

     now():生成当前日期和时间

          随机范围10-200的数字 :floor(10+ rand()*200)