python实现mysql连接池
时间: 2024-01-25 19:13:10 浏览: 144
使用Python实现MySQL连接池可以提高数据库连接的效率和性能。下面是一个示例代码,演示了如何使用`pymysql`库实现MySQL连接池:
```python
import pymysql
from pymysql import connections
class MySQLPool:
def __init__(self, host, user, password, database, pool_size=5):
self.host = host
self.user = user
self.password = password
self.database = database
self.pool_size = pool_size
self.connection_pool = []
def init_pool(self):
for _ in range(self.pool_size):
conn = pymysql.connect(
host=self.host,
user=self.user,
password=self.password,
database=self.database
)
self.connection_pool.append(conn)
def get_connection(self):
if len(self.connection_pool) == 0:
raise Exception("Connection pool is empty")
return self.connection_pool.pop()
def release_connection(self, conn):
self.connection_pool.append(conn)
# 示例用法
pool = MySQLPool('127.0.0.1', 'root', 'root', 'pythondb', pool_size=5)
pool.init_pool()
# 从连接池获取连接
conn = pool.get_connection()
cursor = conn.cursor()
# 执行SQL查询
cursor.execute("SELECT * FROM table_name")
result = cursor.fetchall()
# 释放连接回连接池
pool.release_connection(conn)
```
这个示例代码中,我们创建了一个`MySQLPool`类,它接受数据库的连接参数和连接池的大小作为参数。在`init_pool`方法中,我们初始化了连接池,创建了指定数量的数据库连接。`get_connection`方法用于从连接池中获取一个连接,`release_connection`方法用于释放连接并将其返回到连接池中。
请注意,这只是一个简单的示例,实际使用中可能需要根据具体需求进行适当的修改和扩展。
阅读全文