запрос приложение начинает бесконечно грузиться и потом выбивает ошибку 504 Gateway Time-out
Функция для получения постов:
public static function getPosts($id, $ids)
{
$db = Yii::$app->db;
//получение id постов
$command = $db->createCommand('SELECT item_id FROM posts WHERE res_id = :id AND type IN (:ids)');
$parameters = [
':id' => $id,
':ids' => $ids
];
$command->bindValues($parameters);
$result = $command->queryAll();
//приведение id постов к строке idшников
$postsIds = '';
foreach($result as $post)
{
if(strlen($postsIds) == 0)
{
$postsIds .= $post['item_id'];
} else {
$postsIds .= ',' . $post['item_id'];
}
}
//получение постов
$dbposts = Yii::$app->dbposts;
$commandPosts = $dbposts->createCommand('SELECT * FROM posts WHERE type IN (:ids) AND id IN (:postsIds) LIMIT 10');
$parametersPosts = [
':ids' => $ids,
':postsIds' => $postsIds
];
$commandPosts->bindValues($parametersPosts);
$com = $commandPosts->getRawSql();
var_dump($com);
// $result = $command->queryAll();
// return $result;
// return $com;
}
запрос, приложение начинает бесконечно грузится даже когда пытаюсь вывести сам запрос через $com = $commandPosts->getRawSql();
var_dump($com);
база clickhouse, индекс в таблице posts на id. Если в tabix выполняю данный запрос SELECT * FROM posts WHERE posts.type IN (1,4) AND posts.id IN (3142146256,3658056161,3261044749,3365149015,3298121984) LIMIT 10 то посты получаю
Может скрипт умирает на первом запросе?
об этом даже не подумал ,щас проверю
Закоментьте всё, кроме первого запроса, проверьте - если 504, значит ошибка в нём. Если нет, раскомменчивайте дальше постепенно
проверил , первый запрос нормально отрабатывает , второй падает
А если в mysql его выполнить?
// $result = $command->queryAll(); тут разве не $commandPosts должен быть? во втором куске
работает , второй запрос проверяю в tabix и тоже работает
должен , но все равно все виснет, не в этом проблема
Пробовали на 2 функции разделить?
нет, щас попробую
Обсуждают сегодня