`

MySQL Connection Pooling with Django and SQLAlchemy

 
阅读更多

1. 安装SQLAlchemy

下载地址:http://www.sqlalchemy.org/download.html

python setup.py install

2. 创建mysql_pool:

拷贝一份/django/db/backends/mysql的mysql文件,放入/django/db/backends改名为"mysql_pool"

在项目文件setting.py中添加:

DATABASES = {

   'default': {

       'ENGINE': 'django.db.backends.mysql_pool', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'mysql_pool', 'sqlite3' or 'oracle'.

       'NAME': 'test',                      # Or path to database file if using sqlite3.

       'USER': 'root',                      # Not used with sqlite3.

       'PASSWORD': '1',                  # Not used with sqlite3.

       'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.

       'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.

   }

}

 

3. settings.py and database settings

在项目文件settings.py中添加:

DATABASE_WAIT_TIMEOUT = 120

数据库:

show GLOBAL variables; 

set global wait_timeout = 120; 

4. 修改mysql_pool下base.py文件:

a. 在最上方加入:

try:

   from settings import DATABASE_WAIT_TIMEOUT

except ImportError:

   print u'DATABASE_WAIT_TIMEOUT not in settings.py, defaulting to 120.'

   DATABASE_WAIT_TIMEOUT = 120

import sqlalchemy.pool as pool

b. 在import MySQLdb as Database下方加入

Database = pool.manage(Database, recycle=DATABASE_WAIT_TIMEOUT-1) # must match or be less than wait_timeout in mysql

c. 替换self.connection = Database.connect(**kwargs)

if settings.DATABASE_HOST.startswith('/'):

   self.connection = Database.connect(port=kwargs['port'], unix_socket=kwargs['unix_socket'], user=kwargs['user'], db=kwargs['db'], passwd=kwargs['passwd'], use_unicode=kwargs['use_unicode'], charset='utf8')

else:

   self.connection = Database.connect(host=kwargs['host'], port=kwargs['port'], user=kwargs['user'], db=kwargs['db'], passwd=kwargs['passwd'], use_unicode=kwargs['use_unicode'], charset='utf8')

5. 完成!

 

6. 问题

查看mysql connect只有一个连接

connect pool多个连接没有,在研究中

分享到:
评论

相关推荐

    Using ODBC Connection Pooling with CDatabase (under MFC)使用

    本篇文章将深入探讨如何在MFC中利用ODBC连接池(Connection Pooling)功能,以提高应用程序的性能和资源效率。 首先,我们需要理解ODBC连接池的概念。连接池是一种管理数据库连接的技术,它预先创建并维护一定数量...

    django-db-connection-pool:Django 的持久数据库连接后端

    django-db-connection-pool Django 的 MySQL & Oracle & PostgreSQL 连接池后端,基于 SQLAlchemy。快速开始使用pip安装所有引擎: $ pip install django-db-connection-pool[all] 或选择特定引擎: $ pip install ...

    python-sqlalchemy帮助文档

    9. **连接池(Connection Pooling)** SQLAlchemy使用连接池来管理数据库连接,提高效率并减少资源消耗。默认情况下,SQLAlchemy会自动处理连接的创建和回收。 10. **SQL表达式语言(SQL Expression Language)** ...

    max pooling with dropout

    在matlab上实现了具备max pooling和dropout功能的convolutional neural network,并附带MNIST数据集,可以直接运行测试。 时间有限,仅有1层convolution和1层pooling。

    DBConnectionManager.rar_Connection Pooling_DBConnectionManag_DBC

    2. **连接获取与释放**:当应用需要执行数据库操作时,调用`getConnection()`方法从连接池中获取一个已建立的连接。操作完成后,通过`returnConnection()`方法将连接返回到池中,以便后续使用,而不是直接关闭。 3....

    c3p0 - JDBC3 Connection and Statement Pooling

    关于jdbc连接池的一个第三方类 可以实现连接池的使用

    sqlalchemy文档资料翻译

    - **Connection Pooling**:提供关于SQLAlchemy连接池机制的详细说明。 - **Column and Data Types**:涵盖SQLAlchemy中的各种数据类型及其使用方法,以及如何自定义数据类型。 - **扩展与插件**:`sqlalchemy....

    .net2.0 Mysql

    MySqlConnection mysql = new MySqlConnection(mysqlStr); 或者 string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=inv;" + "UID=root;" + "PASSWORD=root;" + "OPTION=3...

    Python库 | SQLAlchemy-1.1.9.tar.gz

    3. **Engine and Connection Pooling**:SQLAlchemy 包含了一个 Engine 对象,它是与数据库通信的中心。Engine 负责配置数据库连接,并可以管理连接池,从而优化数据库资源的使用。 4. **Table and Column Objects*...

    Python程序设计:pymysql与sqlalchemy模块.pptx

    `connection pooling`提供数据库连接池,优化资源管理;`Dialect`根据不同的数据库选择合适的DB-API模块;`Schema/Types`定义数据库架构和数据类型;`SQL Expression Language`则提供了一种声明式的SQL构建方式。 ...

    MATLAB Deep Learning: With Machine Learning, Neural Networks and A I

    Work with convolution and pooling layers Build a MNIST example with these layers Who This Book Is For Those who want to learn deep learning using MATLAB. Some MATLAB experience may be useful.

    UFLDL Exercise: Convolution and Pooling 卷积和池化

    UFLDL(Understanding Deep Learning via Linearized Models)是一个学习资源,提供了深入理解深度学习概念的练习,其中"Convolution and Pooling"这一部分主要介绍了卷积层和池化层在神经网络中的应用。 卷积层是...

    Unity链接MySQl所用到的MySql.Data.dll插件

    MySqlConnection connection = new MySqlConnection(connectionString); ``` 这里,你需要替换连接字符串中的参数以匹配你的MySQL服务器配置。 4. 打开和关闭连接:在需要与数据库交互时打开连接,完成后关闭...

    unidac5.3.8src

    Bug with connection establishing when Pooling is enabled is fixed for MySQL provider Bug with RefreshRecord when ReadOnly is set to True is fixed for MySQL provider Bug with SSL connection on ...

    .net mysql 连接驱动程序 6.9.5

    安装该驱动程序后,开发者可以直接通过.NET代码使用诸如 MySqlConnection 对象来建立和管理到MySQL服务器的连接,使用 MySqlCommand 执行SQL语句,并用 MySqlDataReader 获取查询结果。 安装过程通常很简单,"mysql...

    C#连接mysql数据库完整实例

    MySqlConnection mysql = new MySqlConnection(mysqlStr); return mysql; } ``` 执行SQL语句,我们定义了`getSqlCommand`方法,它接收SQL语句和数据库连接作为参数,返回一个`MySqlCommand`对象。这个对象用于...

    database_resident_connection_pooling.zip_oracle

    数据库驻留连接池(Database Resident Connection Pooling,简称DRCP)是Oracle 11g版本引入的一项重要特性,旨在优化数据库连接管理和资源利用率,从而提高系统性能和响应速度。DRCP通过在数据库内部维护一个连接池...

    c#链接mysql方法

    MySqlConnection mysql = new MySqlConnection(mysqlStr); return mysql; } ``` 这里定义了一个静态方法`getMySqlCon`来获取数据库连接。连接字符串`mysqlStr`包含了必要的配置信息,如数据库名称`test`、数据源...

    MySql.Data.zip

    例如,`MySqlConnection`类用于创建和管理到MySQL服务器的连接,`MySqlCommand`类用于执行SQL命令,而`MySqlDataReader`则用于高效地读取查询结果。 在.NET应用程序中使用MySQL.Data,首先需要在项目中引用该组件。...

    Python库 | SQLAlchemy-1.3.21-cp36-cp36m-manylinux1_x86_64.whl

    4. **Engine and Connection Pooling**: Engine是SQLAlchemy中负责与数据库进行通信的核心组件。它包含了连接数据库的所有配置信息,如URL、用户名、密码等。同时,Engine还管理着连接池,用于高效地重复使用数据库...

Global site tag (gtag.js) - Google Analytics