编程习惯请教:习惯整个 db 查询的结果类作为参数对象, 整体在函数中传来传去;而不是对参数对象做精简,只抽取函数使用的属性: 求问各位大佬,这种习惯会在哪些情况下带来坏处么?(比如大量数据)

2019-06-24 11:03:38 +08:00
 salmd
1456 次点击
所在节点    Python
4 条回复
chmaple
2019-06-24 11:19:53 +08:00
非大佬。
1、函数中传递的多是引用,数据已经从 db 中拿出来放进内存了;
2、内存中,就算大对象,拷贝也比较快,如果真的很大就已经崩了;
3、建议,db 查询对象的时候,如果能预见对象字段较多数据量较大,就提前做好准备,比如分页分批查询、只拉取有用字段;
4、大量也看多大,几百上千的无所谓,真的一次 pull 个百十万,换谁来都爆,这时候就性能优化吧;
5、有的时候,数据量很大的业务,看看能不能先 sql 处理加工一次,比全部加载到内存里面好一些
Leigg
2019-06-24 11:24:17 +08:00
用 orm 库,数据量过大自动分页
est
2019-06-24 11:24:57 +08:00
说清楚查询结果是 list 还是 cursor ?

如果是 list 其实算已经精简过一次了。。2333
mandy0119
2019-06-24 13:41:37 +08:00
我的理解:
你传的又不是对象具体数据,就是个引用,如果是 java 的话,用完了很快就会被 jc 掉吧。
如果只抽取需要的属性好处我觉得在于网络 IO 吧。毕竟如果一条记录信息过多的话能少传不少,但是带来的是如果你需求改了,就会爆炸想哭

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

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

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

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

© 2021 V2EX