这是我本人和我的一些同事所进行的讨论,并认为我会来到这里,看看是否对此达成了普遍共识。
关于数据库调用,基本上可以归结为以下两种观点:1.进行一次大型调用以获取减少数据库调用数量所需的一切信息。2.根据请求的尺寸进行较小的单独调用以减小数据库的大小。数据库调用
这在通用代码中特别有用。我们将使用Employee类的示例,因为这很简单。
假设您的Employee类具有10个值属性(名字,姓氏,雇用日期等),然后具有2个类属性... 1个指向Department类,然后1个主管指向另一个Employee对象。
在心态1中,您将进行一次调用,以返回Employee数据以及填充Department和Supervisor属性所需的字段……或者至少返回那些子对象中最常使用的字段。
在思维方式2中,首先只填充Employee对象,然后仅在实际需要时以及在实际需要时才填充Department和Supervisor对象。
2的态度非常简单明了...最小化请求的大小以及每次发出这些请求中的一个时都要命中多少个数据库对象。#1的立场是,即使可以正确实施,代码必须进行多个连接的纯粹事实也将导致Web服务器和数据库之间的连接受到更大的压力,而不是减少连接。
研究此问题的推动力是我们的Web服务器和数据库服务器之间的通信量已失控。