If you're worried about the load, I've successfully implemented something similar by using a queue, queue all the tracking requests, then consume a few 1000 at a time, process them in memory and write the result to the DB. I've easily handled 20000 requests per minute using a single RabbitMQ instance, you can easily cluster RabbitMQ if your traffic gets too much for one instance.
How you extract data from that, that depends what you want to do with it.