异步ORM是什么意思

异步ORM是什么意思,orm,asynchronous,Orm,Asynchronous,异步ORM的真正含义是什么?它的行为与常规ORM有什么不同 在哪里可以使用 这意味着对它的调用会立即返回(不阻塞)。您将在稍后的某个时间点获得结果,很可能是由于回调触发 类似这样的代码(伪代码): 在本例中,两个查询将同时执行(第二个查询的响应可能在第一个查询之前) 它在使用非阻塞IO的程序中很有用。让查询同时执行(可能是在多个数据库上执行)对于延迟来说是非常明智的。 如果每个查询需要1毫秒,那么执行10个查询仍然只需要1毫秒,而不是10毫秒。不阻塞线程实际上并不是最重要的问题:连接通常不能异步

异步ORM的真正含义是什么?它的行为与常规ORM有什么不同


在哪里可以使用

这意味着对它的调用会立即返回(不阻塞)。您将在稍后的某个时间点获得结果,很可能是由于回调触发

类似这样的代码(伪代码):

在本例中,两个查询将同时执行(第二个查询的响应可能在第一个查询之前)

它在使用非阻塞IO的程序中很有用。让查询同时执行(可能是在多个数据库上执行)对于延迟来说是非常明智的。
如果每个查询需要1毫秒,那么执行10个查询仍然只需要1毫秒,而不是10毫秒。

不阻塞线程实际上并不是最重要的问题:连接通常不能异步使用(也就是说,只有在不同连接上发送查询时,这种方法才有效)。将多个查询分组在一起通常更为重要:无论如何,在执行查询时,您可以在客户机上执行一些工作;但若查询相对简单,将它们组合在一起可以节省大量到数据库的往返。许多ORM(至少是NHibernate、DataObjects.Net)提供了对未来(延迟)查询的支持,从这一点来看,这些查询更具吸引力。
function printResult(result)
    if result is "foo" print "FOO" else print "BAR"

function fooBar()
    Orm.myQuery().setCallback(printResult)
    Orm.myOtherQuery().setCallback(printResult)