# 异步 from concurrent.futures import ThreadPoolExecutor import asyncio all_tables=["select * from hdrx.bas_source", "select * from hdrx.bas_station", "select * from hdrx.bas_unit","select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his",] if 1: import asyncio import time import pandas as pd from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy.sql import text # 待执行的 SQL 列表 all_sql = [ "select * from hdrx.bas_source", "select * from hdrx.bas_station", "select * from hdrx.bas_unit", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", "select * from hdrx.source_data_day_his", ]*5 # 数据库配置 DB_CONFIG = { "user": "root", "password": "root", "host": "127.0.0.1", "port": 3306, "database": "hdrx" } #====================最快速查询sql的方法. semaphore=asyncio.Semaphore(5) # 加上信号量,可以保证并发不蹦. async def runsql_async(ttt): async with semaphore: """真异步 SQL 查询函数""" # 创建异步引擎(基于 asyncmy 驱动) async_engine = create_async_engine( f"mysql+asyncmy://{DB_CONFIG['user']}:{DB_CONFIG['password']}@{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['database']}", echo=False # 关闭 SQL 日志输出 ) async with async_engine.connect() as conn: # 执行 SQL 查询 result = await conn.execute(text(ttt)) # 获取查询结果并转为 DataFrame df = pd.DataFrame(result.fetchall(), columns=result.keys()) # 关闭异步引擎 await async_engine.dispose() return df async def mini_async(): """异步任务调度函数""" tasks = [runsql_async(table) for table in all_sql] results = await asyncio.gather(*tasks, return_exceptions=True) return results # 测试真异步版本速度 if __name__ == "__main__": kaishi = time.time() a = asyncio.run(mini_async()) # print(a) print("真异步(asyncmy)的速度", time.time() - kaishi) # 信号量100时候: 35秒 # 信号量10时候:33秒 # 信号量20时候:35秒mysql 最快查询代码
张小明
前端开发工程师
Zen Browser终极指南:解锁高效浏览的完整秘籍
Zen Browser终极指南:解锁高效浏览的完整秘籍 【免费下载链接】desktop 🌀 Experience tranquillity while browsing the web without people tracking you! 项目地址: https://gitcode.com/GitHub_Trending/desktop70/desktop 还在为传统浏览器臃…
颠覆认知:5步构建企业级反向代理网关的黄金法则
颠覆认知:5步构建企业级反向代理网关的黄金法则 【免费下载链接】lucky 软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,阿里云盘,ftp,webdav,filebrowser 项目地址: https://gitcode.com/GitHub_Trending/luc/lucky 你…
Paraformer-large结合知识图谱:会议内容结构化提取案例
Paraformer-large结合知识图谱:会议内容结构化提取案例 1. 引言:从语音到结构化信息的智能跃迁 你有没有这样的经历?开完一场两小时的项目会议,录音文件存了一大堆,但回头整理纪要时却头疼不已——谁说了什么、达成了…
cv_resnet18_ocr-detection性能优化指南,推理速度提升3倍
cv_resnet18_ocr-detection性能优化指南,推理速度提升3倍 1. 引言:为什么需要性能优化? 你有没有遇到过这样的情况:上传一张图片,等了整整3秒才出结果?在批量处理几十张图时,整个过程像卡住了…
ZLMediaKit音频转码终极指南:快速实现WebRTC协议兼容
ZLMediaKit音频转码终极指南:快速实现WebRTC协议兼容 【免费下载链接】ZLMediaKit 基于C11的WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT服务器和客户端框架。 项目地址: https://gitcode.com/…
移动端自定义字体美化指南:从系统替换到场景化应用
移动端自定义字体美化指南:从系统替换到场景化应用 【免费下载链接】LxgwWenKai LxgwWenKai: 这是一个开源的中文字体项目,提供了多种版本的字体文件,适用于不同的使用场景,包括屏幕阅读、轻便版、GB规范字形和TC旧字形版。 项目…