编程界的小学生一枚,主要使用语言为python,平时要和数据打交道,还有erp系统相关以及web开发等等,有时间就会分享下工作中遇到的那点事,包括那些让我焦虑的问题,包括我自己总结的小技巧,那些程序优化重构的实现,还有可能包括程序性能优化,以及源码的阅读等等···在荆棘的道路上逆风前行
本文基于python, pandas, pymysql实现了向数据库中批量插入数据的脚本,一方面提供给被网上很多瞎转载的答案给坑蒙了的人(因为我也是),一方面自己也做个笔记,以后方便查阅
文章目录
需求原因
版本库信息
逻辑梳理
分步实现及分析
读取文件
文件的拼接及计算
初始化连接
对应接口转换数据
将数据写入数据库
检查数据库是否插入成功
完整代码
需求原因
最近在处理一个需求,有关批量往数据库插入数据的,描述如下
原来的程序是基于sql的存储过程进行数据的更新修改操作,这样的结果就是对数据库压力太大,于是需要将程序重构为用python读取文件的方式将数据做计算处理,减少这部分的压力,最后仅仅将计算的结果重新更新到数据库中就可以了,减少了极大的压力,也降低了成本。涉及数据库主要是插入及更新操作
版本库信息
这个脚本是基于linux系统写的
三方库 pandas 1.0.5, pymysql 0.9.3
python版本 3.7
标准库 os
逻辑梳理
实际上,最后一步,要写入数据库的文件数据是存储在内存中的。因为读取文件后进行的计算都是在内存中进行的,那么计算的结果也没必要再写到本地,再去读取,再写入数据库,这是会影响程序的效率的
读取文件
文件的拼接及计算,生成新的df
初始化数据库的连接
将df所需数据转换为元组数据(取决于数据库的三方库的接口是如何支持批量操作的)
将数据写入数据库
检查数据库内容即可
分步实现及分析
读取文件
给文件路径,然后去读文件就行了,强调一下需要注意的点
绝对路径: 这种最简单,直接给路径字符串就行了,但是一旦文件夹目录结构变化,就需要频繁的改
相对路径: 我一般喜欢先在脚