标签:imp second article 数据库连接池 nbsp 2.0 %s 自动 提交
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()
标签:imp second article 数据库连接池 nbsp 2.0 %s 自动 提交
原文地址:https://www.cnblogs.com/stono/p/9176751.html