If your design needs you to retrieve huge numbers of actual records, then
your design is wrong. (And this from a 40+ year professional
programmer/analyst.) SQL offers lots of ways of retrieving summaries of
information in the database, and these are ideal for successively refining
filters before doing the actual retrieval of the small number of records the
user wants to see.
> If I say, in order to do my job, I have to collect this information, ...
I imagine that your job is actually to construct a method of filtering
information so that the needed records can be found.
Anyway, if you don't want advice, I'll stop giving it.