我是php项目,它基于两个独立的数据库。一个是MySQL DB,另一个是.基本上,我已经配置了整个环境,它几乎可以正常工作。
几乎,因为我在尝试访问两个DB时注意到了一些糟糕的性能。
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.07s!所以我想这一进步是在切换连接时造成延迟的。
我执行了第二个测试--我已经将db2设置为propel配置中的默认设置。当我这样做时,来自db2的查询执行速度要快得多(同样是相同的查询0.07s)。
这是正常行为吗?处理多个数据库总是会导致性能问题吗?
是为了让它更快吗?
提前感谢您的帮助。如果需要的话,我很乐意提供更多的细节。
发布于 2013-08-21 13:31:43
找到了解决办法。这是完全不同的原因:http://www.iishacks.com/2013/02/18/mysql-connection-response-slow-on-windows-2008-2012/

抱歉浪费你的时间。
https://stackoverflow.com/questions/18357698
复制相似问题