python脚本操作MySQL数据库的一些问题
2017-06-30 14:55
337 查看
python脚本操作MySQL数据库的一些问题
博主小妹在某公司实习,被分派做数据清洗和梳理(此处不得不提及自己实在太菜了),遇到一系列MySQL数据库的处理问题,列在此处,作为总结。1. 数据抽取缓慢
没什么好方法,获取到的经验就是尽量减少在SQL语句中使用Join和Left Join,Join语句会对全表进行查询匹配,查询速度慢,可以先将两表所需数据读取到内存中,在内存中进行匹配。2. 数据处理缓慢
一开始进行数据抽取匹配时,运用了多层循环,其实有些循环是不必要的,有些循环在梳理逻辑时是可以避免的。尽量减少循环遍历,能在一个循环内处理的操作,不要遍历两次。(ps: defaultdict真的好用)3. 数据插入耗时长
导师一开始给的学习脚本,每一条数据Insert并且commit一次,插入数据耗时特别长。改进过程中采取的思路是:将1000条数据存入一个List,每1000条数据进行一次插入操作。代码如下:objs = [] for dim in datas: objs.append(datas[dim]) if len(objs) >= 1000: data_insert(ins_sql, objs) // 封装的insert函数,ins_sql为sql语句 objs = [] data_insert(ins_sql, objs)
4. 数据库查询时间长
在实际任务中,数据以django接口的方式提供,开发时遇到了数据读取缓慢的问题,解决的方式是在对应的筛选字段上添加index。数据库添加index的命令为:ALTER TABLE ‘tablename’ ADD INDEX ‘index_name’ (‘column_name’)
一些其他的tips:
脚本中一定要注意logging的使用,能极大的方便统计数据处理时间,记录数据处理的一些鼓掌python脚本自动运行分为两步:①编辑shell命令文件用于运行python,②使用crontab命令编辑定时执行shell命令
Record at 14:54 2017/6/30
相关文章推荐
- redhat下使用mysql,python,redis,httpsqs,shell脚本开机自启动的一些问题与解决
- 关于Python操作Mysql数据库时SQL语句的格式问题(mysql语句中的双引号问题)
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 【问题汇总】python操作hbase脚本
- Python脚本解决一些繁琐的测试问题
- 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化
- Python操作Mysql数据库时SQL语句的格式问题
- Python中操作MySQL数据库返回值的问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- CentOS下后台运行Python脚本及关闭脚本的一些操作
- python操作mysql数据库如何解决中文乱码的问题
- [转]PHP中操作MySQL数据库的一些要注意的问题
- python 操作MySQL数据库使用"insert into ... on duplicate key update"报错问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- c++调用python脚本出现的一些问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 【MySQLdb模块】Python操作MySQL数据库
- python 操作mysql数据库