“快速插入百万数据”通常出现在 数据库(MySQL / PostgreSQL / Oracle 等) 场景。下面按最常见、最有效的方式给你总结,并附示例。
INSERT INTO user (name, age)
VALUES
('a', 1),
('b', 2),
('c', 3),
...
LIMIT 每批 1万~10万;
✅ 建议:
LOAD DATA LOCAL INFILE 'data.csv'
INTO TABLE user
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
速度:百万级秒级完成
SET autocommit = 0;
SET unique_checks = 0;
SET foreign_key_checks = 0;
-- 插入数据
COMMIT;
COPY user(name, age)
FROM '/data/data.csv'
DELIMITER ','
CSV;
INSERT INTO user VALUES
('a',1),('b',2),('c',3);
// JDBC
conn.setAutoCommit(false);
PreparedStatement ps = conn.prepareStatement(sql);
for (...) {
ps.addBatch();
if (i % 10000 == 0) {
ps.executeBatch();
}
}
ps.executeBatch();
conn.commit();
INSERT INTO user (name, age)
SELECT CONCAT('u', id), RAND()*100
FROM (
SELECT @i:=@i+1 id
FROM information_schema.tables a,
information_schema.tables b,
(SELECT @i:=0) t
LIMIT 1000000
) x;
❌ 单条 INSERT
❌ 每插入一条就 COMMIT
❌ 有触发器 / 外键 / 索引
我可以直接给你可执行的完整方案或脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。