当前位置: 首页 > news >正文

MySQL中的连接池

数据库的连接池

1 )概述

  • 网站连接数据库,为庞大用户的每次请求创建一个连接是不合适的
  • 关闭并重新连接的成本是很大的
  • 处理方法:设置最大值, 最小值, 设置最多闲置连接,设置等待阻塞

2 )示例演示

import threading
import pymysqlfrom dbutils.pooled_db import PooledDBMYSQL_DB_POOL = PooledDB(creator=pymysql, # 使用连接数据库的模块maxconnection=5, # 连接池允许的最大连接数,0 和 None 表示不限制连接数mincached=2, # 初始化时,连接池中至少创建的空闲的连接,0表示不创建maxcached=3, # 连接池中最多闲置的连接,0 和 None 不限制blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True, 等待: False, 不等待然后报错setsession=[], # 开始会花钱执行的命令列表,如: ["set datestyle to ...", "set time zone ..."]ping=0, # 没必要做连接前的检查, 0 = None = never, 1 = default = whenever it is rquested, 2 = when a cursor is created, 4 = when a query is executed, 7 = alwayshost='127.0.0.1',port=3306,user='root',password='xxxx',database='userdb'charset='utf8'
)def task():# 去连接池获取一连接, 有则获取,无则阻塞conn = MYSQL_DB_POOL.connection()cursor = cursor(pymysql.cursors.DictCursor)cursor.execute('select sleep(2)')result = cursor.fetchall()cursor.close()conn.close() # 将连接还给连接池def run():# 开始并发请求for i in range(10):t = threading.Thread(target=task)t.start()if __name__ == '__main__':run()
  • 在实际工作中,程序是需要做负载均衡,数据库也是需要搭建集群的
  • 并发问题是性能瓶颈的主要问题

相关文章:

  • vue3 指令详解
  • RabbitMQ消息可靠性保证机制3--消费端ACK机制
  • 四元数分析(Quaternion Analysis)在故障诊断中的应用
  • 手机录屏没有声音?让你的录屏有声有色
  • 鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台
  • 【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
  • 详解ajax、fetch、axios的区别
  • 2023 CSIG青年科学家会议丨多模态大模型时代下的文档图像处理
  • C# windows服务程序开机自启动exe程序
  • CV之DL之Yolo:计算机视觉领域算法总结—Yolo系列(YoloV1~YoloV8各种对比)的简介、安装、案例应用之详细攻略
  • Linux之Shell编程
  • ubuntu apt 更换阿里云源
  • Linux常用命令大全<二>
  • windows监控进程是否还活着,查看内存使用率
  • Copilot在Pycharm的应用和示例
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • C++11: atomic 头文件
  • DOM的那些事
  • Java到底能干嘛?
  • MySQL用户中的%到底包不包括localhost?
  • php面试题 汇集2
  • SegmentFault 2015 Top Rank
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • swift基础之_对象 实例方法 对象方法。
  • Vue2.0 实现互斥
  • Vultr 教程目录
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 构建工具 - 收藏集 - 掘金
  • 计算机常识 - 收藏集 - 掘金
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 一份游戏开发学习路线
  • 用Python写一份独特的元宵节祝福
  • 原生Ajax
  • 字符串匹配基础上
  • ​queue --- 一个同步的队列类​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $.ajax()方法详解
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (rabbitmq的高级特性)消息可靠性
  • (定时器/计数器)中断系统(详解与使用)
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)插入排序
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .Net mvc总结
  • .NET 设计模式初探
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @NestedConfigurationProperty 注解用法