nastya97core
@nastya97core
Начинающий программист

Что лучше: отдельные запросы SELECT или их группировка?

Есть массив:
$person = ['Петров Александр 10.10.1990', 'Иванов Владимир 09.08.1995', 'Силанова Ольга 01.12.1980']

В моей базе по каждому из людей есть подробная информация. Столбец person так и выглядит: Петров Александр 10.10.1990, а в столбце result как раз доп. инфа.
Мне нужно узнать, изменились ли данные на стороннем сервисе, относительно моих. Я этот массив с людьми пересобираю и делаю запрос на сторонний api. В ответ мне приходит огромный массив, где просто в том же порядке, что и мой изначальный массив находится описание каждого человека.
Далее я должна сравнить данные с теми, что в БД и те, что я получала. И вот здесь у меня вопрос: по сути, я могу сделать перебор $person и делать SELECT в базу, где person = $person[$i];, но у меня очень часто значение result может быть null и поэтому сравнение пройдёт очень быстро, следовательно сразу будет происходить следующий запрос в БД, и я буду делать большую нагрузку на БД. Может стоит группировать запросы и сразу получить весь массив из БД, а потом перебором сравнивать их?

И если лучше группировка, то подскажите, как это организовать, если:
1. свой массив $person я получаю из БД (имеется в виду, он не постоянный и генерировать запрос в БД мне надо на лету)
2. я использую PDO и обычный запрос на одного человека у меня выглядит вот так:
$pdoGet = $pdo->prepare("SELECT result,id FROM data WHERE person = ? ORDER BY id DESC");
$pdoGet->execute([$pers]);
$frombd_strstr = $pdoGet->fetch();
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
PeterLS
@PeterLS
Руководитель веб-студии
Лучше группировать, так как на на соединение с mysql сервером тоже требуется время.
Более того, если значения result не большие и ваш mysql сервер поддерживает работу с JSON, то лучше сравнивать сразу в запросе (работа с JSON).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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