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

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

14 ответов

44 просмотра

может цикл

Фильтры в 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"

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта