ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

python从数据库获取全量数据的方法

2021-06-03 12:54:15  阅读:256  来源: 互联网

标签:count python 数据库 游标 datetime cursor 全量 conn size


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()

 

标签:count,python,数据库,游标,datetime,cursor,全量,conn,size
来源: https://blog.51cto.com/u_15241951/2849771

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有