MongoDb
中的延迟加载是什么?
如果我们想要创建一个数据库,它就像:
m.getDB(<dbName>).getCollectionNames()
仅由于延迟加载。谁能解释一下?
答案 0 :(得分:6)
延迟加载不是数据库本身的功能。所有这一切意味着当客户端通过驱动程序(或ORM)发出查询时,ORM可以选择在进行查询时不加载整个对象图。它可以选择仅在实际使用/访问结果对象时才对数据库进行查询。
这再次独立于可以使用的数据库,并且通常内置于ORM本身。这是出于优化/性能原因而完成的,如果不总是访问对象图的一部分,那么如果我们在实际访问它时在几个实例中延迟加载它就没问题。现在这意味着将会有一个查询,ORM会在访问时触发加载该数据,然后将调用返回给客户端代码。
应用程序开发人员通常会指定应该热切地加载对象图的哪些属性/部分以及应该懒得加载哪些属性/部分。
现在请记住,某些nosql选项可能具有使我们能够执行此操作的ORM功能,但最常见的情况是,您将看到这是在RDBMS世界中,并且完全成熟的ORM非常常见。
你可以查找hibernate的延迟加载/延迟提取功能,以便更好地理解这个概念。