1. Сбор данных:
Копай в сторону очередей, воркеров и тд. Паралельный сбор будет быстрее. Тем более что судя по всему ты сканишь всея интернет. Вкратце:
- Создаешь задание для сканирования и помещаешь в сервер очередей.
- Запускаешь кучу воркеров в на vps и они из этой очереди будут брать задания и выполнять
- делаешь еще одну очередь для записи результатов в базу и поднимаешь парочку воркеров для записи в базу. Если каждый сканящий воркер будет напрямую писать в базу то скорее всего ты сам себе заддосиш базу
- технологии: Очереди- RabbitMQ или Redis. Воркеры - Celery, Мониторинг - Flower
2.
Коллеги выше написали про оптимизацию базы. Это очень важно.
Добавляй индексацию на поля. (На те по которым делаешь фильтр. Например даты.)
Сразу почувствуешь прибавку скорости при запросах.