【发布时间】:2012-04-08 23:51:30
【问题描述】:
我想知道,就带宽和整体效率而言,哪个选项最昂贵。
假设我的应用程序中有一个类Client,我的数据库中有一个表client。
是使用一个静态函数Client.getById 检索整个客户记录还是使用多个(Client.getNameById、Client.getMobileNumberById 等)检索单个字段更好?
如果一条记录有 很多 个字段,而我最终在当前脚本中使用了一个或两个字段,那么检索所有内容并在应用程序内部决定如何处理所有字段是否更好?数据?
【问题讨论】:
-
这取决于...你所做的一切意味着一切都需要对吗?你的带宽是多少?你有多少用户?这一切都在同一个服务器机房里吗?向下光纤?通过移动互联网?你的延迟是多少?你的用户在哪里?你的服务器在哪里?他们有多强大?它们是如何组织的? “很多”是多少字节?...
-
@Ben 你有抽象思维的能力吗?我问的是在一般情况下哪个选项更好。应用还没有发布所以我不知道
-
是的:-)。 @oded,对数据库的调用越少越好,传输的字节越少越好,但所有问题仍然有效;他们会产生影响......
-
@Ben 你是对的,可以做的最好的优化实际上是使用现实生活中的信息检查应用程序中的瓶颈是什么,但作为一般情况,我猜测 Oded 的答案是正确的
-
如果你还没有接触过 ORM,我强烈建议你看看Doctrine project。它会自动将您的类链接到您的表并生成 getter/setter,因此您甚至不必考虑这一步。为什么要重新发明轮子?
标签: database optimization bandwidth database-optimization