数据库表快速更新
来源:互联网 发布:sdrsharp linux 编辑:程序博客网 时间:2024/06/05 20:40
一,背景。
- 1,在线上版本开发的时候,会经常遇到一些对原来的表字段进行拆分,将表格的字段复制到另一个表。主要介绍几种数据库字段更新的方式。
二, 更新方式。
- 1,使用java代码进行更新,不过会经常需要读取数据库,更新数据的值。适合处理很复杂的逻辑,但是更新时间会长点,有可能影响到线上的服务。
- 2,使用mysql语句进行更新,其实基本上都可以解决数据库更新的问题。处理的速度也会快很多。
三,mysql数据库更新方式。
- 1,大表间的数据更新。对于从一张几百万的表中获取两个字段的数据,并且又匹配相应的内容存到另一张表中。直接的从这张表中获取两个字段数据并且更新是会比较久的,而且会造成锁表的情况, 在服务器不能停机更新的时候,这个就会比较麻烦,所以比较好的方式。是一张表中的需要的几个字段都select出来,并且存入到另一张表中,并且对其建立相应的索引。再匹配待更新表的字段,这样既不会影响到线上的功能运转,也可以很快地实现。
- 其中的原理是取出自己想要的数据,而不是全部的数据,并且将相应的数据建立好索引,加快查询速度。
四,重复数据的查找及删除。
- 1,查找重复的数据时,并且重复记录是一个字段的时候。用得比较多的就是
select * from user where is_deleted = 0 group by phone having count(*) > 1
这种的方式。 - 2,但是如果是查找重复记录中(多个字段),就需要换一种方式。
select * from user a
where (a.peopleId,a.seq) in (select peopleId,seq from user group by peopleId,seq having count(*) > 1)
* 3,删除重复记录中重复记录。并且只留有最小的id。 delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
阅读全文
0 0
- 数据库表快速更新
- 数据库快速更新全表数据
- 数据库快速入门教程(更新程度:完毕 )
- 动态更新数据库表
- 更新数据库、表、列
- 更新数据库表
- 如何快速更新数据库中的百万条数据
- ADO.NET 快速入门(五):从 DataSet 更新数据库
- ef 更新数据库表后更新实体
- 数据库数据更新,不同表,不同数据库的更新方式
- SqlDataAdapter 批量更新数据库表
- Oracle数据库表更新问题
- Oracle数据库表更新问题
- 数据库更新
- 数据库更新
- 数据库更新
- 快速备份/更新数据
- ubuntu 快速更新
- 欢迎使用CSDN-markdown编辑器
- zab协议流程图总结
- 切换效果
- annaconda python 和Ubuntu根目录中Python并存下cannot import _caffe,不能make pycaffe的解决办法。
- Atcoder CODE FESTIVAL 2017 qual C D
- 数据库表快速更新
- Java String为什么是不可变类,StringBuffer与StringBuilder区别
- 【JZOJ 5411】【NOIP2017提高A组集训10.22】友谊
- DEVONthink Pro Office 2.9.16 for Mac 简体 中文版 自适应简/繁中文系统
- 洛谷P3905 道路重建
- 数据结构-栈&队列&Deque实现比较
- vbox里面Ubuntu虚拟机与主机Windows之间设置共享文件夹
- 用户登录操作
- Jzoj4736 漆黑列车载运数个谎言(GOSICK系列)