I wrote a post a while back that said why you don't want to shard. In that post that I tried to explain that hardware advances such as 128G of RAM being so cheap is changing the point at which you need to shard, and that the (often omitted) operational issues created by sharding can be painful.
What I didn't mention was that if you've established that you will need to eventually shard, is it better to just get it out of the way early? My answer is almost always no. That is to say I disagree with a statement I've been hearing recently; "shard early, shard often". Here's why:
- There's an order of magnitude better performance that can be gained by focusing on query/index/schema optimization. The gains from sharding are usually much