我的用户将上传大型csv文件。我需要添加批量mysql值(比如insert into my_table (name, email) values ('john', 'abc@d.co'), ('foo','def@g.org') ...)
如果数据库或查询本身存在重复的电子邮件,则不应该插入它们(或者应该用新的名称更新它们)。
我在每个值上运行一个查询检查,但是性能很差(2000 csv文件占用了一分钟或更多时间)。
我如何优化这个,最好是一个很好的查询,或者创建一个唯一的复合键(user_id和电子邮件组合是唯一的),并声明insert ignore into my_table ...忽略重复。但是怎么做呢?
谢谢!
发布于 2014-06-05 19:50:31
我直接从这里拿了这个:On Duplicate Key Update - Multiple Columns
如果成功的话,你应该给他/她一个肿块。
INSERT INTO my_table
(name, email)
VALUES
('john', 'abc@d.co'),
('foo','def@g.org')
ON DUPLICATE KEY UPDATE
name=VALUES(name)
email=VALUES(email)https://stackoverflow.com/questions/24068837
复制相似问题