データベース接続プールなしで書かれました:
インポートのMySQLdb CONN = MySQLdb.connect(ホスト= ' はlocalhost '、ユーザ= ' ルート'は、passwd = ' PWD '、DB = ' MYDB '、ポート= 3306 ) CUR = CONN。カーソル() SQL = " 選択 * からTABLE1" R = CUR。実行(SQL) R = cur.fetchall() CURを。近く() CONN。近いです()
使用PooledDB
DBUtils.PooledDB輸入PooledDB 輸入pymysql 輸入xlwt インポートのOS インポートスレッド インポートzipファイル クラスCreateExcel(オブジェクト): "" " 查询数据库、并生成エクセル文档 """ デフ__init __(自己、は、mysql_info): self.mysql_info = は、mysql_info 自己。プール = PooledDB(pymysql、5、ホスト= self.mysql_info [ 'ホスト']、ユーザ= self.mysql_info [ 'ユーザ']、 パスワード= self.mysql_info [ 'パスワード']、DB = self.mysql_info [ 'DB' ]、ポート= self.mysql_info [ 'ポート']、 文字セット= 'UTF-8')
接続パラメータが定義されています。
1. mincached、アイドル接続の最小数は、アイドル状態の接続数がこの数未満で、プールは、新しい接続が作成されます
。この数は、アイドル接続の数よりも大きい場合には、プールがアイドル接続閉じ、2 maxcached、アイドル接続の最大数を
3。 MaxConnectionsを、接続の最大数、
4ブロック、この値がtrueの場合、接続要求は、接続要求プログラムは、接続の最大数よりも少ない接続の現在の数まで待機する際の接続数が最大接続数に達したとき、この値がfalseの場合、与えられ、
この数は接続の数、既に接続された共有割り当てのための新たな接続要求に達し5 maxshared
5ここではデフォルトの接続数である必要があり、それ
uwsgiでは、各HTTPリクエスト・プロセスは、接続プールの数をプロセスとして構成されているに配布される(すなわち、上記の接続の最大数は、プロセス内の接続の数である)の単位は、ビジネスならhttpリクエストは、SQL接続が(実際には、ほとんど唯一の接続を作成する必要があります)言葉の多くではありません必要で、接続設定の数はあまり必要ありません。
性能向上にプーリング接続:
1を、プログラムがアイドル状態の接続からの接続を作成するときに、得られる取得速度の接続を改善するための接続を再初期化する必要はありません
接続をオフに2.際に、接続バック接続プールは、むしろ本物に近いよりも、頻繁に開閉接続を低減することが可能です