To do the writes requires a lookup. To do a read requires a lookup. That's how sharding works. If not a lookup, then a hash.
This doesn't even get into the complexity of scaling your model from 1,000 or 10,000 users where your brute-force methods seem like they will work and applying it to 10,000,000 users where your model will die a horrible death, kinda like Twitter is today.