【使用mysql存储过程来创建假数据】

需求:生成千万级的假数据用来测试

使用mysql提供的存储过程执行数据插入

为了提高插入效率可以先把事物和日志记录关掉

-- 关闭事物日志
SET AUTOCOMMIT=1;
SET FOREIGN_KEY_CHECKS=0;
SET UNIQUE_CHECKS=0;

-- 假数据加载完在放开
SET AUTOCOMMIT=0;
SET FOREIGN_KEY_CHECKS=1;
SET UNIQUE_CHECKS=1;

编写函数,如果需要的数据量很大,可以复制函数多执行几次。(如果你使用的navacat可以刷新一下点击表下面的函数按钮)

CREATE DEFINER=`输入账户名`@`%` PROCEDURE `generate_test_data`()
BEGIN
  DECLARE i INT DEFAULT 0;
  DECLARE order_id BIGINT UNSIGNED;
  DECLARE fre_price DECIMAL(10,2);
  DECLARE brand VARCHAR(255);
  DECLARE time_create DATETIME;
  -- Initialize the Snowflake ID generator
  --生成雪花Id来保证唯一不会冲突
  SET order_id = UNIX_TIMESTAMP(NOW()) << 22;
  WHILE i < 1000000 DO
    -- SET fre_price =0.02;
    -- SET brand ='brand';
    -- SET time_create = NOW();
    -- 插入你需要造的数据 insert 
    SET order_id = order_id + 1;
    -- 如果不注重唯一值的话 可以使用批量 会更快
    INSERT INTO order_test (id)
    VALUES (order_id);
    SET i = i + 1;
  END WHILE;
END

如果你不需要创建关联数据 也可以使用navaCat 16,有一个生成数据的功能
【使用mysql存储过程来创建假数据】_第1张图片

或者点击
【使用mysql存储过程来创建假数据】_第2张图片

你可能感兴趣的:(sql,mysql,数据库,sql)