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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM