--测试表 create table test_enf_demo ( id bigint not null comment '主键' primary key, enf_text varchar(255) null comment '文本', enf_content longtext null comment '长文本', tenant_id varchar(20) default '000000' null comment '租户编号', dept_id bigint null comment '部门id', user_id bigint null comment '用户id', order_num int default 0 null comment '排序号', test_key varchar(255) null comment 'key键', value varchar(255) null comment '值', version int default 0 null comment '版本', create_dept varchar(100) null comment '创建部门', create_time datetime null comment '创建时间', create_by bigint null comment '创建人', update_time datetime null comment '更新时间', update_by bigint null comment '更新人', del_flag int default 0 null comment '删除标志' ) comment 'enf测试单表'; -- 为 test_enf_demo 表生成 10000 条测试数据 -- 使用存储过程批量插入 DROP PROCEDURE IF EXISTS generate_test_enf_demo_data; DELIMITER $$ CREATE PROCEDURE generate_test_enf_demo_data() BEGIN DECLARE i INT DEFAULT 1; DECLARE batch_size INT DEFAULT 500; DECLARE current_batch INT DEFAULT 0; -- 关闭自动提交,提升插入性能 SET autocommit = 0; WHILE i <= 10000 DO INSERT INTO test_enf_demo ( id, enf_text, enf_content, tenant_id, dept_id, user_id, order_num, test_key, value, version, create_dept, create_time, create_by, update_time, update_by, del_flag ) VALUES ( i, CONCAT('文本_', i), CONCAT('这是第', i, '条测试长文本内容,用于测试数据填充。'), '000000', 100 + FLOOR(RAND() * 50), 1000 + FLOOR(RAND() * 500), i, CONCAT('KEY_', LPAD(i, 5, '0')), CONCAT('VAL_', LPAD(i, 5, '0')), 0, CONCAT('部门_', FLOOR(RAND() * 20)), DATE_ADD('2024-01-01', INTERVAL FLOOR(RAND() * 730) DAY), 1, NOW(), 1, 0 ); -- 每 500 条提交一次 SET current_batch = current_batch + 1; IF current_batch >= batch_size THEN COMMIT; SET current_batch = 0; END IF; SET i = i + 1; END WHILE; -- 提交剩余数据 COMMIT; SET autocommit = 1; END$$ DELIMITER ; -- 执行存储过程 CALL generate_test_enf_demo_data(); -- 清理存储过程 DROP PROCEDURE IF EXISTS generate_test_enf_demo_data; -- 验证数据量 SELECT COUNT(*) AS total_count FROM test_enf_demo;