python从数据库获取全量数据的方法
Posted stono
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python从数据库获取全量数据的方法相关的知识,希望对你有一定的参考价值。
python从数据库获取全量数据的方法
学习了:https://blog.csdn.net/lom9357bye/article/details/79503658
原文膜拜:
import psycopg2.pool from datetime import datetime # 批量查询大小 batch_size = 1000 def cursor_query(): # 使用数据库连接池,使用普通的连接方法运行貌似也会内存飙升,因此改为了连接池 simple_conn_pool = psycopg2.pool.SimpleConnectionPool(minconn=1, maxconn=5, database="dbname", user="username", password="123456", host="172.0.0.1", port="5432") # 从数据库连接池获取连接 conn = simple_conn_pool.getconn() # 自动提交事务设为false conn.autocommit = False # 创建游标,这里传入name参数,会返回一个服务端游标否则返回的是客户端游标 cursor = conn.cursor(‘cursorname‘) # 首先查询全量数据 cursor.execute(‘select * from tablename‘) count = 0 # 开始时间 start_time = datetime.now() while True: count = count + 1 # 每次获取时会从上次游标的位置开始移动size个位置,返回size条数据 data = cursor.fetchmany(batch_size) # 数据为空的时候中断循环 if not data: break print(‘获取%s到%s数据成功‘ % ((count - 1) * batch_size, count * batch_size)) print(‘fetchmany获取全量数据所用时间:‘, (datetime.now() - start_time).seconds) cursor_query()
以上是关于python从数据库获取全量数据的方法的主要内容,如果未能解决你的问题,请参考以下文章