首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 插入百万数据时间优化与 OOM 问题的解决

每个存储过程从 IT 部门的数据库获取数据大概需要 20min 的时间,总共 40min 的样子。 二 ....问题 之前一位已经离开公司的同事已经实现了一个版本的该需求的功能,思路是一个 Python 类的两个方法分别处理客户信息和机构信息,使用 MySQLdb 模块拼接一条 sql 语句便插入一条数据。...内存溢出,内存使用过大被 Linux 内核杀死导致入库的数据不完整。 三. 定位与解决 1. 时间优化 通过打印处理时间,可以很容易发现处理时间主要都消耗在数据入本地 mysql 上。...提升数据库入库的效率的一条原则就是以“insert table(XX) values(XX),(XX)…”来代替多次插入单条数据。...4246379 条数据,使用时间 26 分钟,而“2017-02-08 20:39:34”数据入 mysqldb 完成,只有了 4 分钟,从 4 小时到 4 分钟时间优化提升挺明显的。

5.7K20

MySQL 数据插入 100w 条数据要花多久

同一时间对一个表的写操作不应该是独占的吗?...答:在数据里做插入操作的时候,整体时间的分配是这样的: 1、多链接耗时 (30%) 2、多发送query到服务器 (20%) 3、多解析query (20%) 4、多插入操作 (10% * 词条数目...MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率...) 使用多值插入SQL,SQL语句的总长度减少,即减少了网络IO,同时也降低了连接次数,数据库一次SQL解析,能够插入多条数据。...执行多条SQL语句,实现数据库事务。

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java Excel百万数据快速插入数据库思路

    思路假设数据有100万。要将数据快速插入数据库,首先得减少读取数据时间开支。减少插入数据时,时间上的开支。数据量过大容易产生OOM思路一:单线程逐行解析,单线程逐行插入。...(推荐)数据获取对于百万数据的获取,本人一般采用alibabat提供的easyexcel工具。...,最简单的方法就是直接读取,通过单线程的方式逐行解析,时间上的开销预计在10分钟左右(不推荐)第二种方法便是采用多线程的方式(推荐),即利用线程池的方式去获取。...数据插入建议使用MyBatis-Plus框架,其提供了数据库多行数据插入的方法,可减少IO,同时开启JDBC批量插入&rewriteBatchedStatements=true对于数据插入比较简单的方法就是直接通过简单...Sql逐条插入采用多线程的方式分批插入,如果每一批1w数据的话,大概1分钟左右就能处理完。

    24910

    你向 Mysql 数据插入 100w 条数据用了多久

    同一时间对一个表的写操作不应该是独占的吗?...答:在数据里做插入操作的时候,整体时间的分配是这样的: 1、多链接耗时 (30%) 2、多发送query到服务器 (20%) 3、多解析query (20%) 4、多插入操作 (10% * 词条数目...MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率...) 使用多值插入SQL,SQL语句的总长度减少,即减少了网络IO,同时也降低了连接次数,数据库一次SQL解析,能够插入多条数据。...执行多条SQL语句,实现数据库事务。

    1.3K20

    你向 Mysql 数据插入 100w 条数据用了多久

    多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗?...答:在数据里做插入操作的时候,整体时间的分配是这样的: 链接耗时 (30%) 发送query到服务器 (20%) 解析query (20%) 插入操作 (10% * 词条数目) 插入index (10%...MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率...多线程插入(多表) 分区分表后使用多线程插入。...3) 使用多值插入SQL,SQL语句的总长度减少,即减少了网络IO,同时也降低了连接次数,数据库一次SQL解析,能够插入多条数据

    1.3K20

    你向 MySQL数据插入 100w 条数据用了多久

    多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗?...答:在数据里做插入操作的时候,整体时间的分配是这样的: 1、多链接耗时 (30%) 2、多发送query到服务器 (20%) 3、多解析query (20%) 4、多插入操作 (10% * 词条数目...MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率...多线程插入(多表) 分区分表后使用多线程插入。...) 使用多值插入SQL,SQL语句的总长度减少,即减少了网络IO,同时也降低了连接次数,数据库一次SQL解析,能够插入多条数据

    41820

    你向 Mysql 数据插入 100w 条数据用了多久

    ▌目录 多线程插入(单表) 多线程插入(多表) 预处理 SQL 多值插入 SQL 事务( N 条提交一次) ▌多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?...同一时间对一个表的写操作不应该是独占的吗?...答:在数据里做插入操作的时候,整体时间的分配是这样的: 链接耗时 (30%) 发送 query 到服务器 (20%) 解析 query (20%) 插入操作 (10% * 词条数目) 插入 index...MySQL 插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增 id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率...(3) 使用多值插入 SQL,SQL 语句的总长度减少,即减少了网络 IO,同时也降低了连接次数,数据库一次 SQL 解析,能够插入多条数据

    2.3K10

    性能爆表:SpringBoot利用ThreadPoolTaskExecutor批量插入百万数据实测!

    开发目的: 提高百万数据插入效率。 采取方案: 利用ThreadPoolTaskExecutor多线程批量插入。...countDownLatch.countDown();// 很关键, 无论上面程序是否异常必须执行countDown,否则await无法释放 } } } 创建多线程批量插入具体业务方法...testMultiThread() { List logOutputResults = getTestData(); //测试每100条数据插入开一个线程...: 根据id分组,查看是否有id重复的数据,通过sql语句检查,没有发现重复入库的问题 检查数据完整性:通过sql语句查询,多线程录入数据完整 测试结果 不同线程数测试: 总结 通过以上测试案列...,同样是导入2000003 条数据,多线程耗时1.67分钟,单线程耗时5.75分钟。

    1K10

    MySQL插入Date类型数据时间早8小时解决方案

    前言 最近在学习使用Java整合微信支付,一开始没注意,做了查询超时未支付的订单的定时任务以后,我新创建的订单立马就会被超时关闭,去看了一下数据库的订单信息,时间整整差了8小时,导致我写的逻辑直接被判断超时...,我用的数据库是MySQL8.0哈。...然后我就去根源,去MySQL数据库查看了一下时间,好家伙,数据库的时间直接就是少了8小时的。...然后我把数据库的默认时区修改以后重启就好了 解决方案 我的MySQL8.0是直接安装在Docker里面在,所以直接修改了my.cnf [mysqld]全剧配置就好了,如下两种方案 方案二执行完以后记得重启...MySQL服务器/容器 SELECT NOW(); // 查看当前数据时间 SHOW VARIABLES LIKE '%time_zone%'; // 查看当前数据库连接使用的时区 SET

    1.7K10

    100w条数据 | 插入Mysql你要用多长时间

    同一时间对一个表的写操作不应该是独占的吗?...答:在数据里做插入操作的时候,整体时间的分配是这样的: 1、多链接耗时 (30%) 2、多发送query到服务器 (20%) 3、多解析query (20%) 4、多插入操作 (10% * 词条数目...MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率...) 使用多值插入SQL,SQL语句的总长度减少,即减少了网络IO,同时也降低了连接次数,数据库一次SQL解析,能够插入多条数据。...执行多条SQL语句,实现数据库事务。

    2.2K90

    排序-线性排序,如何做到百万数据秒级排序,时间复杂度O(n)?

    我们经常接触的冒泡排序,快速排序,归并排序等,这些排序时间复杂度大多是n^2或者N(logN),他们都是基于比较的排序(就是排序过程中数据两两做比较),那你有知道和了解几种线性排序的算法吗?...他们的时间复杂度都是O(n),下面的几个问题你会了吗? 问题 1000万订单数据金额如何O(n)复杂度排序? 100万考生成绩如何O(n)复杂度秒级排序?...然后每个桶中的元素再进行排序,这样最后所有桶中的元素按桶的顺序排列,则所有元素有序,我们假设n个元素,m个桶,那么每个桶中放入(n/m=k)个元素,每个桶中元素的排序可以用之前我们分享过的快速排序,则桶排序的时间复杂度是...m * k(logk),我们把k用n/m进行等价替换,所以时间复杂度就编程了 n* log(n/m),当m非常接近n时,那么桶排序的时间复杂度就是O(n)了。...桶排序:是一种外部排序,适用于数据量比较均匀,数据范围不是很大的排序数据

    2.5K20

    性能测试项目中遇到的问题和解决方法

    问题一: 做接口性能测试时,单用户时响应时间是50ms左右,而测10个用户并发时响应时间达到了260ms,虽然没有超出指标,但正常情况下单用户和10个用户并发时响应时间不应该相差那么大。 ?...,说明tcp不能正常释放,会造成响应时间增加。...3、查看磁盘使用情况 因为测试环境调试时是info级别,发压力的时候会产生大量日志,占空间特别大,每清理一次过不了多久又快满了。 ?...场景里有两个接口在测试时插入大量数据,跑一个晚上就能插入百万数据。而另外两个接口是分别查询这两个接口对应的表里的数据数据越多,返回的结果越大,所以响应时间呈上升趋势。...3、重测该场景,考虑到测试时间有限,最优处理能力跑24小时不能正常触发fullgc回收,就用极限压力去测,反正目的是观察内存回收情况,如果能正常回收了则能证明不存在内存溢出情况。 ?

    1.7K70

    excel导入导出百万数据优化

    背景在我前年找实习的时候,遇到了面试官问我:mysql从excel导出百万数据,该怎么做?我听到的第一反应是:我*,我哪去接触百万级的数据,你们导出的数据是什么?我还是一个才找实习工作的大学生啊。...分析百万数据导出Excel循环导出新手和没做过这方面的程序员们别不好意思,我知道你们怎么想的。不就是查询数据写到excel里边吗,看我的。...先一条条的读取数据放在一个list里边,然后用Apache的POI写入excel,完了提供下载就可以了。好坏喔在这里不做评论哈,自己心里肯定过意不去的。百万数据,我得运行多久!...图片那这两种方式我测试了一下,执行的时间分别是:271ms 125ms。也明显的感觉到第二种代码更简单对吧。百万数据导入Excel这个也依旧的麻烦,有人说不就是把之前的操作反过来的吗?...DB里插入,怎么去插入这20w条数据,批量插入 同样也不能使用Mybatis的批量插入,会读取数据到内存中,事务整体提交使用JDBC+事务的批量操作将数据插入数据库(分批读取+JDBC分批插入+手动事务控制

    75220

    做SEO多久才能看到效果?

    对于说服客户也有作用,数据表明,要获得排名,平均就是需要这么长时间。 ahrefs在2017年2月发布了一个帖子:多久才能在Google获得排名?简要介绍一下主要数据。 排名在前面的页面有多老?...ahrefs统计了2百万随机关键词的前10个页面,数据如下: ? 可以看到,排在前10的页面平均是2年以上的页面,越靠前越老,排在第一页的平均存在了将近3年。...ahrefs从他们自己蜘蛛抓的页面数据库中随机选了2百万个一年的页面(蜘蛛1年前发现这些页面),统计这些页面获得的关键词排名,结果如下: ?...要注意的是,这个数据不是说新页面花2-6个月做SEO就能进入第一页。这只是那5.7%进入了第一页的页面花的时间,剩下那94.3%根本没进第一页。...因为这是正常的。

    66920

    一分钟爬取知乎5646个知乎回答(内附代码)

    不浪费大家时间,先上目录,选择性阅读 1.爬取介绍 2.代码展示 3.结果展示 4.福利分享 批量爬取知乎回答 灵魂拷问 你有多久没读过一本书了?你知道什么书最值得读吗? 你有多久没看过一部电影了?...于是行哥花了0.1秒的时间想到了爬虫,使用10000秒的时间写了代码,爬取了知乎下5646个回答,相当于有5646个年薪百万大佬给我的书单进行投票。...获得数据后进行频率排序,图表展示,检查书单前十名哪些已经读过,哪些还没读,看看我与知乎年薪百万的差距还差几本书的距离 ?...代码太长,需要完整源码的可以见文末福利分享 def getAnswers(qid): # 获取所有书籍和回答数据 offset = 0 book_data = {} while...行哥不禁感叹,这些年薪百万的大佬居然也要考虑跟行哥一样的问题-活着,看来离年薪百万更近一步了啦。不知道你距离年薪百万还差几本书 ? ?

    4.5K50
    领券