Storing a cache locally is what i do anyways, also easy on the load, and what you do with the query data. For our
teamspeak and currently online i have a 5 minute cache, mainly to ease on the server load filtering the list.
Another tip is specifying your query, using IDs is quicker than searching.