将大量数据插入mysql数据库的最佳方法是什么?
答案 0 :(得分:1)
您不仅要进行插入,还要使用on duplicate key update
。
我建议您采用批量加载方法:
load data infile
将文件中的数据加载到临时表中。insert . . . on duplicate key update
。最后一步与您的查询类似:
INSERT INTO players (name, online, world, level, vocation, month, week, today)
SELECT name, online, world, level, vocation, time, time, time
FROM players_staging
ON DUPLICATE KEY UPDATE
online = values(online), world = values(world), level = values(level),
vocation = values(vocation), month = month + values(time),
week = week + values(time), today = today + values(time);
由于两个原因,批量操作更快。首先,它们需要较少的数据库调用 - 设置查询,返回结果以及来回的其他开销。其次,它们减少了操作所需的日志记录和锁定量。