Не знам защо изведнъж работи по-бавно, но препоръчвам да конвертирате към присъединяване, което би трябвало да работи по-добре:
SELECT t.*
FROM temp_company t
LEFT JOIN company c ON c.number = t.number
WHERE c.number is null
Това е доста стандартен начин за справяне с not in (...)
чрез присъединяване и работи, защото външните съединения, които не съвпадението има нулеви стойности в колоните на обединената таблица.