2013-08-21 56 views
0

我是基于两个单独的数据库的PHP项目。一个是MySQL DB,另一个是Microsoft SQL服务器。基本上我配置了整个环境,并且它工作得很好。推进 - 多连接性能

差不多,因为我在试图访问这两个数据库时已经注意到了一些可怕的表现。通过推进产生

我的数据库配置是这样的:

$conf = array (
    'datasources' => 
    array (
    'db1' => 
    array (
     'adapter' => 'sqlsrv', 
     'connection' => 
     array (
     'dsn' => 'sqlsrv:server=SERVER_NAME\\SQLEXPRESS;Database=db1', 
     'user' => 'user1', 
     'password' => 'password1', 
    ), 
    ), 
    'db2' => 
    array (
     'adapter' => 'mysql', 
     'connection' => 
     array (
     'dsn' => 'mysql:host=localhost;dbname=db2', 
     'user' => 'user2', 
     'password' => 'password2', 
     'settings' => 
     array (
      'charset' => 
      array (
      'value' => 'utf8', 
     ), 
     ), 
    ), 
    ), 
    'default' => 'db1', 
), 
    'log' => 
    array (
    'ident' => 'my_id', 
    'type' => 'file', 
    'name' => './../application/logs/propel.log', 
    'level' => '7', 
    'conf' => '', 
), 
    'generator_version' => '1.6.7', 
); 

我检查了propel.log,但我注意到,从DB1只有查询被记录在那里。所以我用我自己的文本文件日志类来记录响应时间。每当我尝试从db2获取数据时,响应时间都在1秒左右,这是不可接受的。

之后,我试图单独工作在db2上,同样的查询花了大约0.07s!所以我认为推动交换连接时会造成延迟。

我进行了第二次测试 - 我已经在propel配置中将db2设置为默认值。当我这样做时,来自db2的查询执行得更快(再次 - 同样的查询0.07s)。

这是正常行为吗?在多个数据库上工作是否会导致性能问题?

无论如何要让它更快?

在此先感谢您的帮助。如果需要,我会很乐意提供一些额外的细节。

+0

在进一步的调试过程中,我注意到这个问题只发生在我们的测试/生产服务器上,它是IIS。 虽然用Apache测试本地一切似乎都很好。任何提示我应该看看? –

回答