It’s not a hack, this is what databases are designed for- querying large quantities of data. If you’re concerned about load, you should employ caching on data that doesn’t change frequently.
That said, you should not be using query_posts
to create additional queries. Really, you shouldn’t be using query_posts at all. Create additional queries via WP_Query
.