Скажем так. Если в моей системе зарегистрировано 1 000 000 пользователей, и у меня есть список из 500 имен.
Я хотел бы проверить эти имена по количеству пользователей в моей системе, чтобы увидеть, какие имена / пользователи уже зарегистрированы в БД.
Будет ли такой процесс значительно замедлять работу приложения? Или такие вещи случаются постоянно?
Возможно, я могу кэшировать результаты каждые 30 минут, чтобы мне не приходилось вызывать их каждый раз.
РЕДАКТИРОВАТЬ >> Небольшое уточнение:
Я забыл упомянуть, что пытаюсь обновить список из 500 имен. Так что, если «foobar» и «joe» есть в этом списке и также зарегистрированы в БД, то все, что я хочу сделать, это удалить «foobar» и «joe» из списка, дав мне 498 имен.
Я не думаю, что было бы целесообразно сделать что-то вроде:
User.where('name in (?)', Array('foobar', 'joe'))
Я бы сделал что-то вроде:
User.each do |registered_user|
index = list.index(list.find{ |user| user.screen_name.downcase == registered_user.screen_name.downcase })
list.delete_at(index) if index
end
filtered_list = list
Выше кода, перебор?