我有一个奇怪的问题,我一直看到我的网络应用程序。我使用PHP和CodeIgniter运行了Master-Slave(3)环境。为了方便和读/写数据库组,我将default
组设置为主设备,将replica
组设置为从设备。默认情况下,我们使用master来进行读取,因为信息是时间敏感的,不会受到复制滞后的影响。
为了加载replica
类以便在我的模型中使用 - 我已经完成了以下操作:
class Api_methods_v4 extends Model {
public $clusterDB;
public $stats;
function __construct() {
parent::Model();
if (is_resource($this->clusterDB)) {
}
else {
$this->clusterDB = $this->load->database('replica', TRUE);
}
}
....
}
然后在我的代码中,我指的是引用this->clusterDB->query($sql)
实例而不是replica
组的命令default
。
问题是我使用NewRelic来监控我的应用程序,我通常可以通过应用程序获得非常高的PHP峰值,这与此调用有关:
每次都不会发生这种情况 - 但它足以引起关注。我试图创建一个简单的脚本,连接到replica
db组1000次,并测量它所需的秒数,而且非常快 - 所以我知道这不是问题。任何人都有这方面的见解,还是有更好的方法来解决这个问题?