Подскажите пожалуйста, делаю запрос в бд для получения данных лимит

ставлю 10 , при запросе приложение начинает бесконечно грузиться и зависает, как можно это исправить?

14 ответов

12 просмотров

может цикл

Фильтры в where ставить и индексы строить. Limit накладывается уже после того, как построена вся выборка, так что на скорость он влиять особо не будет.

Какой код? Какой запрос выполняется? Что за база? Индексы?

⁣Scarab Scarab
Фильтры в where ставить и индексы строить. Limit н...

Будет. Как только наберётся нужно число записей поиск прекратится. Даже если в запросе order by без индексов, базе придётся пройтись по всей таблице, но в результирующей выборке можно хранить часть таблицы, а не всю.

Личность- Автор вопроса
Andrey Danilov
Какой код? Какой запрос выполняется? Что за база? ...

Подскажите пожалуйста в чем может быть ошибка ? При выполнении данного запрос приложение начинает бесконечно грузиться и потом выбивает ошибку 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 то посты получаю

Личность
Подскажите пожалуйста в чем может быть ошибка ? Пр...

Вы биндите :ids и :postsIds как строки с разделителем запятая. На сколько я помню они так и подставятся как строка в кавычках, а не как список айдишников. Это конечно не объясняет почему зависает приложение, надо смотреть лог ошибок.

Личность
Подскажите пожалуйста в чем может быть ошибка ? Пр...

из одной базы ты достаешь 2 раза одни и те же данные?

Личность- Автор вопроса
Nikolay Churkin
из одной базы ты достаешь 2 раза одни и те же данн...

нет , с одной idшники , сдругой по этим id беру посты, база с id mariadb , c постами клик

Личность
нет , с одной idшники , сдругой по этим id беру ...

Ну вот с первой базы выбирается 0 постов, а во втором запросе это каким-то образом все ломает

Andrey Danilov
Ну вот с первой базы выбирается 0 постов, а во вто...

он бы тогда в 500 падал, как синтаксис неверный

Личность- Автор вопроса
Andrey Danilov
Ну вот с первой базы выбирается 0 постов, а во вто...

не я проверяю на аке у которого 100% приходят id постов

Личность- Автор вопроса
Andrey Danilov
После первого foreach - $postsIds чему равно?

"3142146256,3658056161,3261044749,3365149015,3298121984"

Похожие вопросы

Обсуждают сегодня

Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Карта сайта