【问题标题】:Propel - multiple connections performance推进 - 多连接性能
【发布时间】:2013-08-21 12:40:51
【问题描述】:

我是基于两个独立数据库的 php 项目。一个是 MySQL DB,另一个是 Microsoft SQL-server。基本上我已经配置了整个环境,它几乎可以正常工作。

几乎,因为我在尝试访问这两个数据库时发现了一些糟糕的性能。

propel 生成的我的 DB Config 如下所示:

$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 获取数据时,响应时间都在 1s 左右,这是不可接受的。

之后我尝试单独处理 db2,但相同的查询大约需要 0.07 秒!所以我认为在切换连接时推进会导致延迟。

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

这是正常行为吗?处理多个数据库是否总是会导致性能问题?

有没有办法让它更快?

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

【问题讨论】:

  • 在进一步调试过程中,我注意到这个问题只发生在我们的测试/生产服务器 IIS 上。在使用 apache 在 localhost 上进行测试时,一切似乎都很好。我应该研究什么提示?

标签: php mysql sql-server propel sqlsrv


【解决方案1】:

找到了解决办法。这是完全不同的原因:http://www.iishacks.com/2013/02/18/mysql-connection-response-slow-on-windows-2008-2012/

很抱歉浪费了您的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2011-06-25
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    相关资源
    最近更新 更多