How do you choose a shard key?
By the access pattern, not by the data. It has to spread writes evenly, and it has to be present on the queries you actually run — pick a key the common query does not filter on and every read fans out to every shard, which is worse than one big database. Monotonic keys like a timestamp or an auto-increment id are the classic trap: they put every new write on the last shard.
The follow-up: what happens to queries that need to cross shards, and what happens to transactions. Both get much harder, and that is the real cost of sharding.