【MySQL插入更新重复值】ON DUPLICATE KEY UPDATE用法
2024-10-02 04:57:35
要插入的数据 与表中记录数据的 惟一索引或主键中产生重复值,那么就会发生旧行的更新
弊端:造成主键自增不连续。适合数据量不大的表。
ON DUPLICATE KEY UPDATE后面的条件
eg有如下表,仅主键存在UK(唯一)属性:
select * from Student
id name age
1 jack 20
2 rose 21
insert into Student ( id,name) values (1,'jack') ON DUPLICATE KEY UPDATE name = 'tom',age=40;
select * from Student;
id name age
1 tom 40
2 rose 21
end
=======================================================================
个人记录日记:
千万条数据量,根据UK进行更新或插入,耗时较久,于是思考优化的思路:
1、在UK字段建立索引(查明ON DUPLICATE KEY UPDATE是否用的到索引)
2、拆成根据UK字段查询,根据查询结果判断后再进行插入和更新操作。这里耗时最大的操作是查询操作,所以查询仍需在UK字段建立索引。
以及多线程下同步以上原子操作。
过程中好奇sql的执行过程,查了一下资料:
https://www.cnblogs.com/yuyue2014/p/3826941.html
最新文章
- mySql 远程连接(is not allowed to connect to this MySQL server)
- 在MFC中使用GDI+的一般方法,以VC6.0编译器为例
- tooltip提示插件
- WEB安全--CSRF剖析
- ACdream 1104 瑶瑶想找回文串(SplayTree + Hash + 二分)
- SharePoint 2013 开发——工作流架构
- PostgreSQL数据的导出导入
- poj 2408 Apple Tree
- 配置Windows 2008 R2 防火墙允许远程访问SQL Server 2008 R2 更改端口 连接字符串 IP+逗号+端口号
- ajax+php如何获取部分请求的信息显示在对应的div中
- ZOJ 3829 Known Notation 乱搞
- 文件系统的几种类型:ext3, swap, RAID, LVM
- LeetCode之“散列表”:Two Sum &;&; 3Sum &;&; 3Sum Closest &;&; 4Sum
- Shell中的算数运算
- python mac 环境配置
- Mac gitk安装与优化
- 【LOJ#6278】数列分块2
- Linux命令中,$、#、@、0、1、2、*、?的作用
- cubic与spline插值点处的区别
- linux查看进程是否存在,不存在则重启
热门文章
- 3 WCF一些基础铺垫
- 数值范围选择控件RangeSlider
- 随机森林与 GBDT
- Andrdoid适当的执行行为拦截的应用----从底部C截距
- 浅谈C/C++堆栈指引——C/C++堆栈很强大(绝美)
- 记一次虚拟化环境下Windows IO性能的解析
- C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)
- Substring详解
- WPF用DirectSound播放声音
- Android零基础入门第76节:Activity数据保存和横竖屏切换