没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
python使用多线程查询数据库的实现示例使用多线程查询数据库的实现示例
主要介绍了python使用多线程查询数据库的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者
工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一一.背景:背景:
当数据量过大时,一个程序的执行时间就会主要花费在等待单次查询返回结果,在这个过程中cpu无疑是处于等待io的空
闲状态的,这样既浪费了cpu资源,又花费了大量时间(当然这里主要说多线程,批量查询不在考虑范围,总会存在不能批量
查询的情况),在这种非密集型运算(及大量占用cpu资源)的情况下在python中无疑运用多线程是一个非常棒的选择。
二二.知识点:知识点:
数据库连接池的运用及优势,python中多线程的运用,队列的运用
数据库连接池:限制了数据库的连接最大个数,每次连接都是可以重复使用的,当然也可以限制每个连接的重复使用次
数(这个在这里是没必要的),需要注意的是设置的数据库的最大连接个数最好要大于我们自己开的最大线程个数,一般逻辑
是每个线程占用一个数据库连接可以使程序达到最大速度,如果小于则可能存在同时连接个数大于数据库允许的最大连接个数
的风险。使用数据库连接池的优势在于,python多线程并发操作数据库,会存在链接数据库超时、数据库连接丢失、数据库操
作超时等问题,而数据库连接池提供线程间可共享的数据库连接,并自动管理连接。
python多线程:在程序等待io的时间里调用多线程去数据库执行查询操作。
队列:这个就是数据结构里面的知识了,一般队列的常用模式先进先出队列。(这里主要用的是队列取一个数就少一个数
的原理,其实用列表也可以实现,他的先进先出主要强调的是一个顺序关系,这一点到没用上,就当是练练手了)
三三.两段代码作比较:两段代码作比较:
数据库的截图:
第一段代码:正常循环查询并打印出执行时间
#!/usr/bin/python
# -*- coding=utf-8 -*-
import time
import threading
import MySQLdb
import Queue
from MySQLdb.cursors import DictCursor
from DBUtils.PooledDB import PooledDB
def mysql_connection():
host = 'localhost'
user = 'root'
port = 3306
password = '123456'
db = 'test'
charset = 'utf8'
limit_count = 3 # 最低预启动数据库连接数量
pool = PooledDB(MySQLdb, limit_count, maxconnections=15, host=host, user=user, port=port, passwd=password, db=db, charset=charset,
use_unicode=True, cursorclass=DictCursor)
return pool
start = time.time()
pool = mysql_connection()
for id in range(50):
con = pool.connection()
cur = con.cursor()
sql = '''select id,name,age,weight from test where id = %s '''%id
cur.execute(sql)
资源评论
weixin_38723691
- 粉丝: 3
- 资源: 941
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据结构课程设计-全国交通出行咨询模拟系统C语言实现源码.zip
- cef-binary-109.0.1+gcd5e37a+chromium-109.0.5414.8-windows32
- 基于C语言的全国交通咨询系统模拟源码.zip
- 炫酷代码雨,超级炫酷哦!!!
- 基于物联网MQTT协议的智能停车场管理系统
- POETIZE个人博客系统源码 - 最美博客
- 基于深度学习的行人检测系统源码+项目说明(YoloV3+Tensorflow).zip
- 区块链系统:以比特币为基础
- 直接插入排序(Insertion Sort)是一种简单直观的排序算法.txt
- Python实现基于深度学习的预测区域电力负荷模型源码+项目说明(高分项目).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功