Python 的哪个异步 ORM 好用点呢?

2023-07-24 01:19:25 +08:00
 MRlaopeng

sqlalchemy+SQLModel 算是一个解决方案吗

2570 次点击
所在节点    Python
18 条回复
mimzy
2023-07-24 01:25:15 +08:00
SQLAlchemy ,久经考验且作者非常勤奋。
joApioVVx4M4X6Rf
2023-07-24 07:25:06 +08:00
SQLAlchemy ,学了这个其他的都不用学了
makerbi
2023-07-24 12:52:15 +08:00
要是习惯了 Django ORM 的话可以试试 peewee-async ,我自己的很多项目都在用,目前没出过啥问题。
warcraft1236
2023-07-24 13:17:40 +08:00
好奇为啥要搞异步的 ORM 。另外,对于 python 这种动态类型的语言来说,ORM 也有点奇怪
MRlaopeng
2023-07-24 13:58:17 +08:00
@warcraft1236 还是为了方便维护,,之前弄的项目,现在七八十个 SQL,就开始吃力了
MRlaopeng
2023-07-24 13:59:58 +08:00
@makerbi peewee 的异步版本吗, peewee 是很成熟的, peewee-async 好像时间还不是很久, 谢谢推荐 我去看下使用示例
MRlaopeng
2023-07-24 14:01:11 +08:00
@mimzy
@v2exblog
是的, sqlalchemy2.0 文档也好很多了 ,就是异步用的没 django 的 ORM 那么爽
Baloneo
2023-07-24 14:06:59 +08:00
异步 orm 并不会更快
MRlaopeng
2023-07-24 14:15:17 +08:00
@Baloneo 为啥, 如果硬盘的 io 足够的话 , 如果查一个大点的数据不异步查询的话 不就阻塞了
Baloneo
2023-07-24 14:37:52 +08:00
warcraft1236
2023-07-24 15:00:00 +08:00
@MRlaopeng ORM 理论上只是管理数据库的数据类型和 python 的类型的映射关系的。然后它一般都带个连接数据库的三方库,重点是这个三方库,连接数据库的时候得是异步的,这样才行
就像 Java 他们默认的数据库连接都是同步的,用什么异步库,到最后都是同步的
MRlaopeng
2023-07-24 15:25:28 +08:00
@warcraft1236 哦哦,是的, 我补充下,,我说的这个异步 ORM,他查询的步骤和连接,都应该是异步执行的
这样才有异步的意义, 不然没啥意义啊
UN2758
2023-07-24 16:10:10 +08:00
现在的 orm 默认都是 lazy query 吧? eager 模式很少,这个行为不能定义为异步吧
MRlaopeng
2023-07-24 16:33:12 +08:00
@UN2758 执行查询的时候, 还是异步的,,,最起码他不阻塞, 我就挺喜欢异步 ORM 的
tisswb
2023-07-24 18:03:24 +08:00
印象中 python 异步 orm 支持最好的是 postgresql 。
tisswb
2023-07-24 18:03:58 +08:00
mysql 的话 异步优势好像体现不出来
MRlaopeng
2023-07-24 21:37:17 +08:00
@tisswb 是的 asyncpg 这个库 异步性能非常强
911061873
2023-07-26 10:54:26 +08:00
可以看看 tortoise-orm

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/959076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX