需求:生成千万级的假数据用来测试
使用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,有一个生成数据的功能
或者点击