Java备份约9亿条数据】的更多相关文章

需求:有一张表9亿多条数据,数据加索引总数据量61GB.考虑到这张表的大部分数据都不会再被使用并且大数据量可能影响整库的性能,所以决定将表里某一个时刻之前的数据备份到一张新表中,待备份完成后将旧表中已经备份的数据删除.由于数据量太大,不适合让DBA直接做备份. 方案1 main线程分页读取旧表数据,每页200条.每读取一页数据就新建一个线程,将200条数据交给新建的线程去完成insert到新表的操作. 弊端:需要将数据读到内存,然后再写回数据库,涉及到大量的IO操作.所有的数据都需要走网络,对网…
test=# insert into tbl_time1 select generate_series(1,100000000),clock_timestamp(),now(); INSERT 0 100000000 Time: 525833.218 ms 约:8.7分钟   COUNT,没有索引,1亿条数据. test=# select count(1) from tbl_time1;    count   -----------  100000000 (1 row) Time: 307065…
当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过程如下: 首先创建100张表: $i=0; while($i<=99){ echo "$newNumber \r\n"; $sql="CREATE TABLE `code_".$i."` ( `full_code` char(10) NOT NULL, `create_time` int(10) unsigned NOT N…
序言 天王盖地虎, 老婆马上生孩子了,在家待产,老婆喜欢玩消消乐类似的休闲游戏,闲置状态,无聊的分析一下消消乐游戏的一些技术问题: 由于我主要是服务器研发,客户端属于半吊子,所以就分析一下消消乐排行榜问题: 第一章 消消乐排行榜大致分为好友排行榜和全国排行榜: 好友排行榜和全国排行榜的其实是重合的只是需要从全国排行榜中提取出来而已: 那么就需要记录所有玩家的通关记录已进行查询: 也许你说全国排行榜只显示前xxx名就好:但是你的好友记录必须要的吧?你的好友不可能全部进入全国排行榜吧: 而好友排行榜…
当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过程如下: 首先创建100张表: $i=0; while($i<=99){ echo "$newNumber \r\n"; $sql="CREATE TABLE `code_".$i."` ( `full_code` char(10) NOT NULL, `create_time` int(10) unsigned NOT N…
2018-08-18 16:58 无腿鸟 阅读(331) 评论(0) 编辑 收藏 问题:当一个表的数据量超过一亿条,要删除其中的5000w条,如何处理. 如果直接使用delete语句,会涉及到到大量的磁盘IO,并产生大量的数据库日志,效率很低,删除速度慢,可能导致事务中断,甚至有服务器硬盘空间撑爆的可能. 本文提供的思路是先将数据表需要保留的数据不带索引导出,然后导入一个新表中 ,对新表重建索引后将老表.新表进行重命名,这样就完成了删除操作,效率有了很大提升. 主要分为三步,1.数据导出2. 数…
为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试.手动插入太麻烦,写了一段代码. 先上代码: package action; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class InsertData { public Con…
http://2017.qconbeijing.com/presentation/646?utm_source=weibo&utm_medium=infoq&utm_campaign=yj 专题演讲嘉宾 :易杰 腾讯社交与效果广告部检索系统组主管 在腾讯工作 10 年,一直从事效果广告的研发工作,对互联网广告及精准推广有较深理解,具备优秀的互联网海量运营经验. 现负责腾讯社交广告平台百亿级广告引擎系统,OLAP 系统 PivotEngine 等. SPA 自研 PivotEngine 可以…
for (int i = 0; i < 100000; i++) { dbHelper.insert("INSERT aaa(name) Values ('1')"); } 运行时间==780450ms conn = getConn(); // JAVA默认为TRUE,我们自己处理需要设置为FALSE,并且修改为手动提交,才可以调用rollback()函数 conn.setAutoCommit(false); st = conn.createStatement(); long s…
分段更新 UPDATE question SET `status`=1 WHERE status!=1 LIMIT 3000;UPDATE answer SET `status`=1 WHERE status!=1 LIMIT 3000; 分段更新,分批生效 总体根据上图,和全量更新对比,单位时间InnoDB Row Operation udp数降低,原来3000*2 优化 借助id UPDATE answer SET `status`=1 WHERE id>40072000 LIMIT 800…