V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ErenJaeger  ›  全部回复第 8 页 / 共 12 页
回复总数  221
1  2  3  4  5  6  7  8  9  10 ... 12  
2021-07-22 14:46:41 +08:00
回复了 cardioio 创建的主题 问与答 迫于漫画荒,有没有青年向的烧脑/热血漫画推荐
我本来打算巨人完结,买全套漫画收藏。
完结后只想在温泉拉屎
2021-07-22 14:45:53 +08:00
回复了 Bechbaliq 创建的主题 职场话题 发现工资对我意义不大
找个爱好,打游戏吧~
2021-07-22 14:11:56 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@RockShake 确实不是多线程,只是我想在执行多个查询的时候,某个查询网络 IO 的时候,可以发起其他查询。减少访问时间
2021-07-22 14:09:35 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@xxfye 如果流程是点菜、做菜、上菜的话。同步应该是来一个人点菜、做菜、上菜,下一个人,点菜、做菜、上菜。。。。这样
异步的话,就是同时面对多个人,如果 1 个人在点菜,不会卡在等待他点菜这个地方,而是去做其他已经点好菜的客户的菜,等到点好菜,在做菜,不知道我这个描述对不对,反正厨师觉得 mmp
2021-07-22 08:50:57 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@BBCCBB 是呀,我本来是想着,并发执行多个 sql,这样将整体查询时长降低至最长查询的那个 sql 。但是感觉并没有达到预期的效果
2021-07-21 18:34:30 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@BBCCBB 其实最大的需求,还是提升响应效率了,这个查询 2s 多能降到 1s 多,甚至不到 1s,就是最高的期望值了,但是测试感觉难以实现
2021-07-21 18:20:55 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
class Pmysql:

def __init__(self):
self.conn = None
self.pool = None

async def initpool(self):
try:
__pool = await aiomysql.create_pool(minsize=10,
maxsize=10,
host=Config.host,
port=Config.port,
user=Config.user,
password=Config.password,
db='db')
return __pool
except Exception as e:
print(e)
print('create connect error.')

async def getCursor(self):
conn = await self.pool.acquire()
cur = await conn.cursor()
return conn, cur

async def query(self, query, param=None):
conn, cur = await self.getCursor()
try:
await cur.execute(query, param)
return await cur.fetchall()
except:
print('error')
finally:
if cur:
await cur.close()
await self.pool.release(conn)

async def getAmysqlobj():
mysqlobj = Pmysql()
pool = await mysqlobj.initpool()
mysqlobj.pool = pool
return mysqlobj
2021-07-21 18:14:59 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@BBCCBB gather 里面是顺序执行的吗?我看官方文档里是这样描述的:
同时运行 aws 序列中的可等待对象。

如果 aws 中的任何 awaitable 是协程,则它会自动安排为任务。

如果所有 awaitable 都成功完成,则结果是返回值的聚合列表。结果值的顺序对应于 aws 中等待的顺序。

如果 return_exceptions 为 False (默认),第一个引发的异常会立即传播到在 gather() 上等待的任务。aws 序列中的其他等待对象不会被取消,而是会继续运行。

如果 return_exceptions 为 True,则将异常视为成功结果,并在结果列表中聚合。

如果 gather() 被取消,所有提交的等待(尚未完成)也将被取消。

如果 aws 序列中的任何 Task 或 Future 被取消,则将其视为引发了 CancelledError - 在这种情况下不会取消 gather() 调用。这是为了防止取消一个提交的任务 /未来导致其他任务 /未来被取消。
2021-07-21 18:12:08 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@chaleaoch 淦,我调了 1000 次,同步 40 多秒,异步 5 秒多。问题生产环境中一个接口里面不可能会有这么高频次的查询,小频次的查询,同步异步的差距就很不明显
2021-07-21 17:58:30 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@v2exblog 试了试,差不多,timeit 测试了下跟同步查询的差不多,就感觉很奇怪
2021-07-21 17:57:45 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@pabupa mix 是 5,max 是 10,按理说应该够了,我调整一下试试
2021-07-21 17:56:42 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@BBCCBB 是的,这两种方式是写法的区别。 我的意思是:
fuction outside(){
asyncFucn1()
asyncFunc2()
asyncFunc3()
asycnFunc4()
......
}
如果 outside 函数等待里面异步函数结束退出的话,执行时长应该是内部异步函数执行时间最长的时长吧。那我同时发起 N 个 sql 查询,整体查询时长应该是 N 个查询 sql 中执行时长最长的时长吧
2021-07-21 17:49:06 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@chaleaoch 是呀,就是我指的就是 gather 里面的任务并发执行的话,执行时长应该是这里面最长执行任务的时长,而不是所有任务执行时长的累积
2021-07-21 16:50:37 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@chaleaoch await 语法糖的作用应该就是等待异步代码返回结果了吧,类似于回调。我想问的是 asyncio.gather()里面的任务不应该是并发执行的吗
2021-07-21 16:47:32 +08:00
回复了 ErenJaeger 创建的主题 Python 感觉 aiomysql,异步执行多个查询,性能并没有显著的提升啊
@BBCCBB 你的意思是 await asyncio.gather()中执行的 sql,还是会顺序执行下去?而不是同时进行查询,查询完毕后返回? 之前写 node.js 的时候,后续处理的步骤都写在回调过程中了,耗时操作不会阻塞,而是去执行下面的步骤了。
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 22:32 · PVG 06:32 · LAX 14:32 · JFK 17:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.