Splitting data across several databases: the shard key, hot shards, cross-shard queries and resharding.