Django配置连接池:使用django-db-connection-pool配置连接池

一、该三方库文档使用

github地址:

https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.mdicon-default.png?t=N7T8https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.md1、选择指定版本,查看指定版本的文档和配置:

                        ​​​​​​​        ​​​​​​​        

2、目前配置的1.2.5版本

3、使用前查看两个文件

        ​​​​​​​        ​​​​​​​        

4、README_CN.md: 是文档说明的中文版

5、pyproject.toml: 是django-db-connection-pool包的依赖情况

二、安装

1、安装所有支持的数据库组件

$ pip install django-db-connection-pool[all]==1.2.5

2、选择部分支持的数据库组件

$ pip install django-db-connection-pool[mysql,oracle,postgresql,jdbc]==1.2.5

3、例如只选择mysql的组件

$ pip install django-db-connection-pool[mysql]==1.2.5

4、1.2.5版本的依赖情况

通用依赖:

python版本>=3.4

Django>=2.0

SQLAlchemy>=1.4.24
sqlparams>=4.0.0

数据库客户端:

jdbc = ["JPype1>=1.3.0"]
mysql = ["mysqlclient>=1.3.0"]
odbc = ["pyodbc>=4.0.34"]
oracle = ["cx-Oracle>=6.4.1"]
postgresql = ["psycopg2>=2.8.6"]
psycopg2 = ["psycopg2>=2.8.6"]
psycopg3 = ["psycopg>=3"]

三、在django配置文件中配置

settings.py

MYSQL_DATA = {
    "HOST": "127.0.0.1",
    "PORT": 3306,
    "USER": "root",
    "PASSWORD": "123456",
    "NAME": "standard"
}

DATABASES = {
    "default": {
        # "ENGINE": "django.db.backends.mysql",#django原生客户端
        "ENGINE":"dj_db_conn_pool.backends.mysql", #使用三方客户端
        "HOST": MYSQL_DATA.get('HOST'),
        "PORT": MYSQL_DATA.get('PORT'),
        "USER": MYSQL_DATA.get('USER'),
        "PASSWORD": MYSQL_DATA.get('PASSWORD'),
        "NAME": MYSQL_DATA.get('NAME'),
        'POOL_OPTIONS' : { #连接池的参数
            'POOL_SIZE': 1,
            'MAX_OVERFLOW': 1,
            'RECYCLE': 24 * 60 * 60,
            'PRE_PING': True,
            'ECHO': False,
            'TIMEOUT': 30,
        }
    }
}

参数说明:

1、POOL_SIZE:项目启动时,连接池预先创建的连接数量

2、MAX_OVERFLOW:当POOL_SIZE的连接数被使用完,还可以根据系统情况再创建的连接数

3、最大连接数=POOL_SIZE+MAX_OVERFLOW,默认两个都是10

4、RECYCLE : 连接超时时间,超过就关闭连接替换成新打开的连接。默认是-1,即不超时。

5、PRE_PING : 从连接池取出连接时,是否先ping以下数据库,检测连接是否还存活。默认True

6、ECHO:是否开启SQLAlchemy的SQL语句日志。默认False,在调试时可以使用。

7、TIMEOUT:定义连接池中获取连接的超时时间,单位秒。如果指定时间内无法获取到可用的连接,将会引发超时异常。

相关推荐

  1. django中如何使用mysql连接

    2024-06-18 20:46:02       30 阅读
  2. Druid数据库连接配置

    2024-06-18 20:46:02       23 阅读
  3. spring redis 连接连接配置 使用

    2024-06-18 20:46:02       35 阅读
  4. Springboot_Tomcat数据库连接配置

    2024-06-18 20:46:02       38 阅读
  5. SpringBoot连接mysql数据库相关配置(druid连接

    2024-06-18 20:46:02       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 20:46:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 20:46:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 20:46:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 20:46:02       18 阅读

热门阅读

  1. leetcode刷题记录:hot100强化训练2:二叉树+图论

    2024-06-18 20:46:02       6 阅读
  2. C语言程序设计-8 函 数

    2024-06-18 20:46:02       5 阅读
  3. 德旺之人,福耀华夏!

    2024-06-18 20:46:02       5 阅读
  4. 建立fabric-ca-serve集群

    2024-06-18 20:46:02       7 阅读
  5. fastapi对视频播放加速方法

    2024-06-18 20:46:02       4 阅读
  6. 嵌入式就业前景好么

    2024-06-18 20:46:02       5 阅读
  7. 数据库回表及优化方法(附示例)

    2024-06-18 20:46:02       6 阅读
  8. 计算机网络模型面试题50题

    2024-06-18 20:46:02       7 阅读
  9. 图解ZGC

    图解ZGC

    2024-06-18 20:46:02      4 阅读