数据库连接池的概念
据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。
假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的.数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
Django中使用数据库连接池的流程
安装
pip install djorm_ext_pool
配置settings
INSTALLED_APPS=[
...,
djorm_pool,
...,
]
DJORM_POOL_OPTIONS = {
"pool_size": 20,
"max_overflow": 0,
"recycle": 3600, # the default value
# 其中DATABASE_WAIT_TIMEOUT为你定义的连接超时时间,
# 必须小于等于mysql里面的wait_timeout()
}
可能出现的要修改的BUG
$virtualenv_path/Lib/site-packages/djorm_pool/__init__.py 52行附近,做出如下修改。
def patch_mysql():
class hashabledict(dict):
def __hash__(self):
# return hash(tuple(sorted(self.items())))
return hash(frozenset(self))
版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创
转载请注明:出处来自王晨曦个人站点 » django中使用数据库连接池
出发地 akpwhkwkbkm [url=http://www.g663g58mzj4x04tpurvf06t505z5v22ks.org/]ukpwhkwkbkm[/url] kpwhkwkbkm http://www.g663g58mzj4x04tpurvf06t505z5v22ks.org/
Buy Stone Machine China Stacked Dado Sets Manufacturers Suppliers Wholesale Dado Stack Blade For Table Saw China Stackable Dado Blades Supplier Factories China Dado Stack For Table Saw www.mediahype.pk
High-Quality Feet For 55 Inch Tv Wholesale 5 Inch Sofa Feet Products Service High-Quality Legs For 60 Inch Tv blueplanet.laopdr.com Wholesale 4 In Table Legs OEM 4 Pack Table Legs Factory Suppliers
lioasaigon.vn
www.support.gaucbc.org 赌厅网投 赌厅网投 澳门博狗 贝博足彩 澳门博狗
vpxxi.ru 在线赌场游戏 贝博足彩 贝博足彩 在线赌场游戏 澳门博狗
澳门博狗 赌厅网投 赌厅网投 docs.megedcare.com 澳门博狗 在线赌场游戏
赌厅网投 贝博足彩 mww.megedcare.com 贝博足彩 贝博足彩 赌厅网投
赌厅网投 贝博足彩 澳门博狗 贝博足彩 贝博足彩 pgusa.tmweb.ru