MySQL查询在夜间不返回任何结果,不会引发任何错误

时间:2019-05-21 08:30:31

标签: php mysql

我有一个主数据库和从数据库,每5分钟通过以下代码对其进行检查。每晚大约30分钟(午夜之后,因此应该是低负载),从属DB在我正在检查的表中没有结果。

MysqliWrapper只是Mysqli类的包装器,用于提供单例和查询生成。生成的查询只是select * from LogTable order by id DESC limit 0,1

我添加了检查以查看是否存在连接错误或查询错误,在发生这种情况时,两者均未记录任何内容。

我尝试从其他表中进行选择,这样可以很好地返回结果,还尝试了select now(),所有这些方法都有效。

<?php
$masterDB = MysqliWrapper::singleton('host1', 'username', 'password', 'dbname');
$slaveDB = MysqliWrapper::singleton('host2', 'username', 'password', 'dbname');

if ($masterDB->connect_errno) {
    Log::error('masterDB error: '.$masterDB->connect_error);
}

if ($slaveDB->connect_errno) {
    Log::error('slaveDB error: '.$slaveDB->connect_error);
}

$filters = [];
$limits = [0, 1];
$orderBy = 'id DESC';

$masterLog = LogTable::staticFind($filters, $limits, $orderBy);

if(empty($masterLog)) {
    Log::error('masterDB query: no results found');
}

if ($masterDB->errno) {
    Log::error('masterDB query error: '.$masterDB->error);
}

$registry = new Registry();
$registry->set('customDb', $slaveDB);
$slaveLog = LogTable::staticFind($filters, $limits, $orderBy);

if(empty($slaveLog)) {
    Log::error('slaveDB query: no results found');
}

if ($slaveDB->errno) {
    Log::error('slaveDB query error: '.$slaveDB->error);
}

正如我说的那样,这一天中有95%的时间都可以正常工作,但是在大约凌晨1点30分钟内从slaveDB中选择任何内容失败,然后又开始正常工作。没有错误记录,反正什么也找不到。

0 个答案:

没有答案