В моей текущей таблице зарегистрированы пользователи a, b, c, d, e, f.
Затем я получаю полный список всех зарегистрированных пользователей, в котором перечислены c, d, e, f, g h.
Это означает, что a, b имеют незарегистрированных пользователей, а g, h являются новыми зарегистрированными пользователями.
Примечание *: Нет события, которое сообщало бы мне, когда пользователь регистрируется или отменяет регистрацию. Только список всех зарегистрированных пользователей, к которым я не хочу обращаться чаще, чем раз в день.
Мой текущий метод обновления MySQL:
UPDATE users SET registered = -1 WHERE registered = 1;
Затем я обновляю таблицу новым списком всех зарегистрированных пользователей:
INSERT INTO users (id, registered) VALUES($userid[i], 1) ON DUPLICATE KEY UPDATE registered = 1;
Затем я продолжаю обновлять таблицу, отмечая пользователей, которые не зарегистрировались:
UPDATE users SET registered = 0, unregistered = 1 WHERE registered = -1;
В основном используя -1 как индикатор того, что пользователь был зарегистрирован, но больше не в соответствии с полным списком;
Это отлично работает с маленьким столом, но занимает часы с десятками тысяч.
Есть ли лучший способ?
Сокращение до нескольких минут было бы более чем приемлемым.