mysql pooling,python使用连接池连接MYSQL

import mysql.connector.pooling

MYSQL_HOST = 'localhost'

MYSQL_PORT = 3306

MYSQL_USER = 'root'

MYSQL_PWD = '_pass999'

MYSQL_DB_NAME = 'TEST'

mysql_pool = mysql.connector.pooling.MySQLConnectionPool(pool_name="mypool", pool_size=2, host=MYSQL_HOST, port=MYSQL_PORT,database=MYSQL_DB_NAME, user=MYSQL_USER, password=MYSQL_PWD,pool_reset_session=True)

try:

conn = mysql_pool.get_connection() #get connection from connect pool

cursor = conn.cursor()

sql = 'select id FROM test ORDER BY id DESC LIMIT 1'

cursor.execute(sql)

data = cursor.fetchall()

print data

except Exception as e:

print e

finally: # must close cursor and conn!!

cursor.close()

conn.close()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用连接池可以显著提高数据库操作的效率,降低资源消耗。在 Python 中,我们可以使用 `mysql-connector-python` 库来连接 MySQL 数据库,而 `mysql-connector-pool` 库提供了连接池的支持。 以下是使用 `mysql-connector-pool` 库创建 MySQL 连接池的示例代码: ```python import mysql.connector.pooling # 创建连接池 config = { "host": "localhost", "user": "root", "password": "123456", "database": "test", "pool_name": "mypool", "pool_size": 5 # 连接池中最多同时存在的连接数 } cnxpool = mysql.connector.pooling.MySQLConnectionPool(**config) # 从连接池中获取连接 cnx = cnxpool.get_connection() # 执行 SQL 查询 cursor = cnx.cursor() query = "SELECT * FROM mytable" cursor.execute(query) # 处理查询结果 rows = cursor.fetchall() for row in rows: print(row) # 释放资源 cursor.close() cnx.close() ``` 在这个示例中,我们通过 `mysql.connector.pooling.MySQLConnectionPool` 类创建了一个名为 `mypool` 的连接池,其中最多可以同时存在 5 个连接。然后,我们通过 `cnxpool.get_connection()` 方法从连接池中获取一个连接,执行 SQL 查询,并处理查询结果。最后,我们需要关闭游标和连接,以释放资源。 需要注意的是,使用连接池时,我们不需要手动关闭连接,而是应该使用 `with` 语句自动管理连接的生命周期。例如: ```python import mysql.connector.pooling config = { "host": "localhost", "user": "root", "password": "123456", "database": "test", "pool_name": "mypool", "pool_size": 5 } cnxpool = mysql.connector.pooling.MySQLConnectionPool(**config) # 从连接池中获取连接,并使用 with 语句自动管理连接的生命周期 with cnxpool.get_connection() as cnx: cursor = cnx.cursor() query = "SELECT * FROM mytable" cursor.execute(query) rows = cursor.fetchall() for row in rows: print(row) cursor.close() ``` 在这个示例中,我们使用 `with` 语句自动管理 `cnx` 的生命周期,当 `with` 块执行完毕时,Python 会自动调用 `cnx.close()` 方法关闭连接

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值