V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  chaleaoch  ›  全部回复第 51 页 / 共 67 页
回复总数  1323
1 ... 47  48  49  50  51  52  53  54  55  56 ... 67  
2017-02-08 16:14:54 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
@vicalloy
部分认同你的观点:
import MySQLdb

# Open database connection
db = MySQLdb.connect(<略>)

import time
starttime = time.time()
sql0 = "select * from <略>"
cursor = db.cursor(MySQLdb.cursors.DictCursor)
cursor.execute(sql0)
custom_html_data = cursor.fetchall()
print time.time() - starttime
cursor.close()

我这边输出的结果在 1.6 ~ 1.7 秒之间.
吃掉的那 1.3 秒就是 orm 的损耗.

这里有一个不严谨的地方就是,我没有测试当前时间点 django orm 的效率.

最后还有一个问题,如果这种时间的损耗都可以忽略的话,大家所说的 ORM 影响效率的点在哪里呢?
2017-02-08 15:24:58 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
@wangfengmadking 要么是因为你水平到位了.要么是因为项目刚开始没多长时间.等将来业务变动自己撸的就扛不住了.
我为什么这么说?
以为我这么干过.(逃.
2017-02-08 15:23:52 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
@ManjusakaL 多库还行啊...用 db_router...
2017-02-08 15:20:55 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
@vicalloy
对,是我没说清楚.
我就是这个意思
>>> qs = <model>.objects.all().values()
>>> list(qs)
超过 1s 是很正常的,因为你要把所有数据一次性取出来。你可以用调试工具看一下,生成的 SQL 就是`select * from <table name>`,查询速度本身是非常快的,但单 2w 条数据,别的不说,单网络传输都要费不少时间。

你的意思是说,(超过 1s 是很正常的)这一秒钟时间并不是 orm 引起的?
2017-02-08 13:42:49 +08:00
回复了 woweiqingkuang 创建的主题 推广 今天免费送书《 Python 语言及其应用》,要的同学举爪 ...
3366.68
2017-02-08 13:15:09 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
@vicalloy
@chaleaoch
1. Django 的查询可以嵌入 SQL ,也可以把自己手写的 SQL 绑定到对象上。
不知道你遇到的具体情况是怎么样的,不过在我看来第一条应当是可以实现。
====
django orm 是有 extra 的写法,不过我把这种写法归于直接 sql 一类。(也是我个人观点)
2. 有些表连接写出来是子查询,这个需要结合具体案例,不是很确定是否是写法问题。
3. 2w 条数据查询用时 3 秒,这个非常不正常,需要结合具体代码进行分析。从我主观角度看是代码写的有问题。
====
非常简单 <model>.objects.all().values() 三秒
<model>.objects.filter(<这里假设出 10000 条数据>).values() 一秒
直接用客户端查询 select * from <table name> <100ms

我的理解问题出在 django orm 在生成映射结构的时候多处使用 for 循环导致的这个问题。
2017-02-08 08:54:45 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
@XhstormR 该用 orm 还是得用 orm 毕竟方便。一直都用 sql 有两个问题,一个是预防 sql 注入,另一个是代码不易读。
2017-02-08 08:41:31 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
还有 django orm 如法实现分表。至少原生不支持。只能分区。
sqlalchemy 支持。
2017-02-08 08:40:11 +08:00
回复了 eyp82 创建的主题 Python SQLAlchemy 比 Django 自带的 ORM 好在哪里?
说几个 django orm 坑爹的地方。
1. 有些 group by 无法用 orm 实现。
2. 有些连表查询,用 djanog orm 写出来的 sql 是子查询。
3. 速度感人,一个两万条记录的查询,用时三秒。 sql<100ms

1 和 2sqlalchemy 有很好的解决方案。
3 我不确定 sqlalchemy 是更快还是更慢。
2017-02-07 21:44:51 +08:00
回复了 IdJoel 创建的主题 问与答 『求助』配一台跑运行 IntelliJ 不卡的机器大概要什么配置
固态硬盘+16G 内存。
台式机随便一个 cpu 应该都带的动 Jetbrains 家的软件。
游戏不清楚。
1 ... 47  48  49  50  51  52  53  54  55  56 ... 67  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1153 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 18:49 · PVG 02:49 · LAX 11:49 · JFK 14:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.