Atitit mysql insert perf enhance 批量插入数据库性能
目录
2.1. 其它关键:DELAYED 做为快速插入,并不是很关心失效性,提高插入性能。 IGNORE 只关注主键对应记录是不存在,无则添加,有则忽略。 2
2.2. 13.2.5.3 INSERT DELAYED语句 异步 2
4.1. 方案三:ON DUPLICATE KEY UPDATE 6
如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:
INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`)
VALUES ('test9@163.com', '99999', '9999');
这样当有重复记录就会忽略,执行后返回数字0
MySQL 5.6参考手册 / ... / INSERT DELAYED语句
该语句的DELAYED选项 INSERT是对标准SQL的MySQL扩展,可用于某些类型的表(例如MyISAM)。当客户端使用时 INSERT DELAYED,它将立即从服务器获得许可,并且当该表未被任何其他线程使用时,该行将排队插入。
注意
INSERT DELAYEDINSERT如果不使用该表,则它比正常速度慢。服务器还要为每个有延迟行的表处理一个单独的线程,这会产生额外的开销。这意味着INSERT DELAYED仅在确实确定需要时才应使用 。