EF中的贪婪加载以及延迟加载

贪婪加载:就是把所有要加载的数据一 次性读取,减少数据访问的延迟,在一次数据库的访问中返回所有的数据,

但一次性读取所有相关的数据,可能导致部分数据实际无需用到,从而导致读取数据的速度变慢,效率变低。

 

如果是在foreach循环中加载数据,那么使用延迟加载会比较好, 因为不需要一次性将所有数据读取出来,这样虽然有可能会造成n次数据库的查询,但 是基本上在可以接受的范围内。

 

延迟加载:即当我们需要用到的时候才进行加载(读取),只在需要读取关联数据的时候才进行加载,

但可能因为数据访问的延迟而降低性能,因为循环中,每一条数据都会访问一次数据库,导致数据库的压力加大.

如果在开发时就可以预见需要一次性加载所有的数据,包含关联表的所有数据, 那么使用使用贪婪加载是比较好的选择,但是此种方式会导致效率问题,特别是数据量大的情况下。

 

EF中的贪婪加载以及延迟加载

上一篇:numpy中reshape(-1,1)与reshape(1,-1)的作用详解


下一篇:使用Redis的注意事项