利用连接池连接postgresql,这里要注意的是,如果fetchall报错的话有可能是字符编码,需要设置字符编码如下:
import psycopg2.pool from time import time t = time() n = 10000 simple_conn_pool = psycopg2.pool.SimpleConnectionPool(5, 200, host=HOST,user=USERNAME, password=PASSWORD, dbname=DB,port=PORT) conn = simple_conn_pool.getconn() conn.set_client_encoding('utf-8') cur = conn.cursor() cur.execute(SQL) res = cur.fetchall() print(res) print(time() - t) simple_conn_pool.closeall()
直连
import psycopg2 from time import time t = time() n = 10000 conn = psycopg2.connect(dbname=DB, user=USERNAME, password=PASSWORD, host=HOST,port=PORT) conn.set_client_encoding('utf-8') cur = conn.cursor() cur.execute(SQL) for i in cur: print(i) print(time() - t)