是否存在导致MySql在两次查询之间等待1秒的设置或问题?

是否存在导致MySql在两次查询之间等待1秒的设置或问题?,mysql,vb.net,odbc,Mysql,Vb.net,Odbc,我有一个客户需要将旧的vb.net web应用程序从旧服务器移动到新服务器。当我在新服务器上运行应用程序时,我们注意到它运行得非常慢,尽管服务器更新,硬件也更好 我对应用程序进行了性能分析,主要的热点是OdbcDataAdapter.Fill()命令 然后,我在MySQL中启用了常规日志并跟踪它。我发现这个应用程序进行了大量的查询(例如,这个程序员会对搜索中的每个结果执行多个查询),但它们似乎在某个地方被限制了 这里只是一个单页请求的日志的一瞥: 130223 11:21:48 624 Co

我有一个客户需要将旧的vb.net web应用程序从旧服务器移动到新服务器。当我在新服务器上运行应用程序时,我们注意到它运行得非常慢,尽管服务器更新,硬件也更好

我对应用程序进行了性能分析,主要的热点是OdbcDataAdapter.Fill()命令

然后,我在MySQL中启用了常规日志并跟踪它。我发现这个应用程序进行了大量的查询(例如,这个程序员会对搜索中的每个结果执行多个查询),但它们似乎在某个地方被限制了

这里只是一个单页请求的日志的一瞥:

130223 11:21:48   624 Connect   root@localhost on mydb
          624 Query SET NAMES utf8
          624 Query SET character_set_results = NULL
          624 Query SET SQL_AUTO_IS_NULL = 0
          624 Query set @@sql_select_limit=DEFAULT
          624 Query select count(*) from bg_doc_status where uploaded = 1 and candidateid='51233'
          624 Quit  
130223 11:21:49   625 Connect   root@localhost on mydb
          625 Query SET NAMES utf8
          625 Query SET character_set_results = NULL
          625 Query SET SQL_AUTO_IS_NULL = 0
          625 Query set @@sql_select_limit=DEFAULT
          625 Query select * from bg_doc_status where willfax=1 and candidateid='51233'
          625 Quit  
130223 11:21:50   626 Connect   root@localhost on mydb
          626 Query SET NAMES utf8
          626 Query SET character_set_results = NULL
          626 Query SET SQL_AUTO_IS_NULL = 0
          626 Query set @@sql_select_limit=DEFAULT
          626 Query Select distinct serviceid from bg_service_results where CandidateID='51233'
          626 Quit  
130223 11:21:51   627 Connect   root@localhost on mydb
          627 Query SET NAMES utf8
          627 Query SET character_set_results = NULL
          627 Query SET SQL_AUTO_IS_NULL = 0
          627 Query set @@sql_select_limit=DEFAULT
          627 Query Select count(*) from bg_candidates_selected_services where CandidateID='51233'
          627 Quit  
我们不需要谈论这个编程有多糟糕:)。这家伙可能在一次查询中做了很多事情。但是,MySql看起来每秒最多执行一个查询

如果我在workbench SQL编辑器中运行这些查询中的任何一个,它们都需要“0.000秒”。如果我尽快按CTRL+ENTER,日志将显示它们每秒执行几次

有人知道是什么导致每秒查询1次的限制吗?它发生在开发和生产中

我尝试了MySQL ODBC 5.2w驱动程序和MySQL ODBC 5.2a驱动程序,包括32位和64位


我找到了解决方案:odbc.open()就是花了整整一秒钟的时间。显然是dns查找(针对本地主机!)花费了大量时间。将my web.config中的db服务器地址更改为127.0.0.1修复了此问题。它似乎发现了相同的问题。

我找到了解决方案:odbc.open()就是花了整整一秒钟的时间。显然是dns查找(针对本地主机!)花费了大量时间。将my web.config中的db服务器地址更改为127.0.0.1修复了此问题。它似乎发现了相同的问题。

为什么不使用?这是一个旧的应用程序,我不想进入源代码。由于相同的代码在旧服务器上运行得非常快,所以在重写数据代码之前,我真的很想尝试一下配置。是否启用了连接池?否则,它应该只对第一个查询执行DNS查找。建立连接后,它不必为每个后续查询执行另一个DNS查找。启用它应该和更改连接字符串一样简单,因为它似乎不是基于您的解决方案硬编码的。此外,如果您想使用“Localhost”,您应该将其添加到“hosts”文件中。旧版本的windows要求它在那里。较新版本的windows不再需要它,因为它已硬编码到网络驱动程序中,可以转到本地计算机。在进行DNS查询之前,计算机应始终首先查看主机文件,因此查找速度应相对较快。这就是它的外观:
实际上,对于ODBC,它似乎是在ODBC驱动程序级别配置的。看看这个问题()服务器是Windows server 2012,所以我想它不需要在那里?