为什么主要数据库供应商不提供真正的异步API?

jas*_*onk 5 database asynchronous

我使用Oracle和Mysql,我很难理解为什么没有编写API以便我可以发出呼叫,离开并做其他事情,然后再回来拿起它,例如NIO - 我被迫奉献一个等待数据的线程.似乎SQL接口是唯一仍然强制同步IO的地方,这意味着占用等待数据库的线程.

有人可以解释一下这个原因吗?有什么根本的东西会让这很困难吗?

能够使用1-2个线程来管理我的数据库查询问题和结果获取,而不是使用工作线程来检索数据,这将是很棒的.

我注意到在实现异步API时有两次实验尝试(例如:adbcj),但似乎没有为生产使用做好准备.

Max*_*sky 1

数据库服务器应该能够处理数千个客户端。为了提供异步接口,数据库服务器需要将查询的结果集保留在内存中,以便您可以在稍后阶段获取它。它将很快耗尽资源。