100w条数据如何插入
2015-05-30 09:46
232 查看
今天去一家公司面试,我应该如何插入100w条数据,我说一说我的想法吧,首先我拿到这100w条数据,想到的是,不可能一次插入吧,如果一次插入,如果有一条数据出问题了,前面的数据不都白插入了了吗?(默认会打开事务),那这个时候,除了一次性插入,我想到的就是分批次插入,那么如何分批次插入呢?我想到两种,
第一种是,对每一个批次我都要求开一个独立的事务,如果数据遇到问题后,那么本次事务的批次失败,回滚,其余正常执行的批次,继续执行,各个批次之间没有任何的影响,那么这样就可以保证绝大多数数据插入成功,最后我们再来处理有问题的批次。
第二种是,有一部分和第一种一样,对每个批次开一个事务,然后在第一种的基础上加一个允许错误的发生个数的伐值,那么当达到这个伐值后,我会回滚掉所有的事务,不管是成功的还是失败的,为什么会这样做呢,我的想法是,如果错误过多,我认为这份数据或者当前网络条件不适合做插入的操作,需要停止下来排查,等条件合适了,再去做这个插入的操作。
以上是我的想法,不知道大家是怎么想的,或者说,大家有没有更好的想法,希望大家说说自己的看法,多沟通,多交流,多进步
第一种是,对每一个批次我都要求开一个独立的事务,如果数据遇到问题后,那么本次事务的批次失败,回滚,其余正常执行的批次,继续执行,各个批次之间没有任何的影响,那么这样就可以保证绝大多数数据插入成功,最后我们再来处理有问题的批次。
第二种是,有一部分和第一种一样,对每个批次开一个事务,然后在第一种的基础上加一个允许错误的发生个数的伐值,那么当达到这个伐值后,我会回滚掉所有的事务,不管是成功的还是失败的,为什么会这样做呢,我的想法是,如果错误过多,我认为这份数据或者当前网络条件不适合做插入的操作,需要停止下来排查,等条件合适了,再去做这个插入的操作。
以上是我的想法,不知道大家是怎么想的,或者说,大家有没有更好的想法,希望大家说说自己的看法,多沟通,多交流,多进步
相关文章推荐
- Host is not allowed to connect to this MySQL server 错误的处理方法
- 2.UITabBar Navigation
- 有点迷糊
- sparse Autoencoder(3)---自编码算法与稀疏性
- Javascript实现div层渐隐效果的方法
- Eclipse Java注释模板设置详解
- Qt小软件:TsTranslationTool(ts字符串文件翻译器)
- Java Convert ArrayList<String> to String []
- Android常用控件总结
- 外媒评论:原生安卓已死!
- N的阶乘(N!)中的末尾有多少个0
- 修改iOS应用名称
- Oracle学习(七)之增加日志组
- error C2265: '<Unknown>' : reference to a zero-sized array is illegal
- 速冻冷库
- Hbase集群搭建
- CentOS6.6禁用Ctrl+Alt+Del重启功能
- 硬件安装——联想笔记本安装固态硬盘
- openerp命令
- oracle数据库中建立表空间和删除表空间