Третий вариант снизит нагрузку, я думаю, даже лучше чем фул текст, и мне кажется это лучший вариант.
Используя третий вариант Вам не надо будет использовать текстовые движки, просто банальное сравнение строки, это довольно таки быстрая операция, с миллионом должна справиться на ура, можете для теста забить пару миллионов случайных строк, и попробовать.