Как лучше сравнить базу данных и текстовый файл (артикул-цена, больше 2000 строк)?
Несколько вещей чисто для информации, чтобы ты немного начал ориентироваться в  окружающем пространстве. Потому что, как все новички, ты думаешь совершенно не о том. 
1. 2000 строк - это не база, а песочница с куличиками. И 10 - тоже. О нагрузках можно начинать думать начиная с сотен тысяч. 
2. САМЫЙ ад в твоих рассуждениях - это LIKE, который ты считаешь штатным средством поиска по артикулу. Вот с такими идеями даже и меленькую базу можно поставить колом. 
3. Стандартный вариант работы в таких случаях - читаешь файл в массив, чтобы артикулы были ключами. Дальше запрашиваешь все строки из БД, и читая по одной, ищешь артикул в массиве.
4.  Непонятно, зачем в текущей формулировке вообще доставать и сравнивать. Почему нельзя просто в цикле проапдейтить 2000 строк, указывая условия в запросе?
5. Почему у тебя в вопросе ничего нет про удаленные/добавленные строки? Если за этим следить не надо, то задача и вовсе выеденного яйца не стоит. Или ты об том пока не думал?
ну, вы же не ежеминутно будете это делать?
не напряжно это и вполне нормально