从Delphi异步访问MySQL数据库

从Delphi异步访问MySQL数据库,mysql,delphi,iocp,Mysql,Delphi,Iocp,如何从Delphi异步访问MySQL数据库 不应阻止执行select语句的线程。为每个活动select语句创建后台线程也不是一个解决方案,因为在负载较重的系统上,这会创建许多线程,并会导致性能问题 IOCP(i/o完成端口)正是我所需要的。但是我不知道如何在Delphi的MySQL中使用这种技术。如果您有某种应用程序,异步执行查询实际上是有意义的,那么就这样做。让服务器处理并发性问题。您可以轻松地配置服务器 例如,看看和。为什么您觉得IOCP是适合您的方式。您认为同时执行数百个查询对您的服务器合

如何从Delphi异步访问MySQL数据库

不应阻止执行select语句的线程。为每个活动select语句创建后台线程也不是一个解决方案,因为在负载较重的系统上,这会创建许多线程,并会导致性能问题


IOCP(i/o完成端口)正是我所需要的。但是我不知道如何在Delphi的MySQL中使用这种技术。

如果您有某种应用程序,异步执行查询实际上是有意义的,那么就这样做。让服务器处理并发性问题。您可以轻松地配置服务器


例如,看看和。

为什么您觉得IOCP是适合您的方式。您认为同时执行数百个查询对您的服务器合适吗?是的,客户机会很高兴,因为他们没有运行数百个线程,但如果有许多客户机同时运行这么多请求,服务器会怎么样呢?考虑使用线程池并具有查询队列。重载=性能问题?经典解决方案:添加更多性能:)@TLama,我想从硬件中获取尽可能高的性能。想象一下这种情况,当我有一个web服务器和几个数据库服务器连接到本地网络时。如果有数百个线程在我的web服务器上运行,那么大量的CPU时间将用于在它们之间切换。但为什么这项工作必须在不必要的时候完成呢?Web服务器应该服务于Web页面,但不能在线程之间切换。我想实现node.js的功能,但是在Delphi上。您没有回答如何从Delphi异步执行查询,而不阻塞启动查询的线程,也不为此创建单独的线程。请看我在这个问题下的评论。@user1439838,你似乎在问你提出了哪些方法。我选择“为每个活动select语句创建后台线程”。我希望获得与node.js相同的性能,但在Delphi应用程序中。大量并发连接不是问题,但大量空闲线程等待某个事件才是问题所在。