Atitit mysql insert perf enhance 批量插入数据库性能 目录 1.1. 案一:使用ignore关键字 1 2. 异步插入 2 2.1. 其它关键:DELAYED  做为

Atitit mysql insert perf enhance 批量插入数据库性能

 

目录

1.1. 案一:使用ignore关键字 1

2. 异步插入 2

2.1. 其它关键:DELAYED  做为快速插入,并不是很关心失效性,提高插入性能。 IGNORE  只关注主键对应记录是不存在,无则添加,有则忽略。 2

2.2. 13.2.5.3 INSERT DELAYED语句  异步 2

2.3. 多线程  批量  java级别 5

3. other 5

3.1. Archil引擎 5

3.2. Mem引擎 5

3.3. 严禁批量更新默认是一个长事务 6

3.4. 检查移除多进程,防止多个进程同时更改同一记录 6

4. Other 6

4.1. 方案三:ON DUPLICATE KEY UPDATE 6

 

 

    1. 案一:使用ignore关键字



如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:

INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`)

VALUES ('test9@163.com', '99999', '9999');

 

这样当有重复记录就会忽略,执行后返回数字0

  1. 异步插入
    1. 其它关键:DELAYED  做为快速插入,并不是很关心失效性,提高插入性能。
      IGNORE  只关注主键对应记录是不存在,无则添加,有则忽略。

 

MySQL 5.6参考手册  /  ...  /  INSERT DELAYED语句

    1. 13.2.5.3 INSERT DELAYED语句  异步

INSERT DELAYED ...

该语句的DELAYED选项 INSERT是对标准SQL的MySQL扩展,可用于某些类型的表(例如MyISAM)。当客户端使用时 INSERT DELAYED,它将立即从服务器获得许可,并且当该表未被任何其他线程使用时,该行将排队插入。

注意

INSERT DELAYEDINSERT如果不使用该表,则它比正常速度慢。服务器还要为每个有延迟行的表处理一个单独的线程,这会产生额外的开销。这意味着INSERT DELAYED仅在确实确定需要时才应使用 。

从MySQL 5.6.6开始,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值