Эффективность запроса - PullRequest
       1

Эффективность запроса

1 голос
/ 18 ноября 2010
$_query = 'UPDATE ' . TABLE_A1 . ' SET active=0 WHERE user_id IN ( ';
                foreach ($newUsers as $newUser) {
                    $_query.=$newUser. ' ,';
                }
                $_query = rtrim($_query, ',');
                $_query .=')';

Это эффективный способ редактирования нескольких записей таблицы одновременно? Есть ли более быстрые способы?

спасибо

Ответы [ 3 ]

1 голос
/ 18 ноября 2010

ОБНОВЛЕНИЕ в порядке. Вы можете сделать свой PHP немного элегантнее, используя implode вместо циклического перемещения по этому массиву.

т.е.:

$_query = 'UPDATE ' . TABLE_A1 . ' SET active=0 WHERE user_id IN (' . implode(',', $newUsers) . ');'
1 голос
/ 18 ноября 2010

Вы можете добавить еще одно противоречие к запросу, что может немного ускорить его, но это зависит от того, как вы получаете своих пользователей ...

Если у вас есть пользователи, которые уже «активны = 0», вы можете исключить их из запроса, добавив

.... где active <> 0 и user_id in (...

Это предотвратит обновления в полях, которые уже имеют правильное значение. У меня был похожий запрос в системе oncce, и он обновлял миллионы записей, которые уже содержали правильную информацию ...

1 голос
/ 18 ноября 2010

Да, это очень эффективно. Я не знаю более быстрого пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...