延迟加载(Lazyload)

时间:2009-6-11     作者:smarteng     分类: WEB相关


延迟加载的特性,也有的称为惰性加载,可以最大程度避免了数据库的开销,并做到按需获取,提升了性能。系统在模型初始化的时候会创建数据库操作对象,但是这个时候并不会马上进行数据库连接,而是会在第一次实际查询的时候才会进行连接。对于有些查询,还可以采用延迟加载,在执行查询操作的时候并不会立刻进行查询,而是等到需要使用查询返回数据的时候才进行查询。该特性对于查询大量数据的时候非常有用。
延迟加载是由数据库抽象层底层支持的,Db类内置了lazyQuery方法来提供延迟加载支持,原则上,任何查询都可以使用延迟加载。和普通查询返回一个ArrayObject对象不同的是,延迟加载返回的是一个ResultIterator对象,只有在遍历的时候才真正进行查询操作