First time I see this word sharding, is when I first get in touch with MongoDB... was it like more than 5 years ago?
Anyway, back to the main topic.
Database sharding is a way of database horizontal partitioning into several machines or nodes. Data are stored in one of the node based on the shard key distribution.
If the database is very big, by partitioning the database in this way, the performance can be improved. Each machine/node has its own resource and readwrite process. However, sharding design, or the shard key distribution is vital to get the benefits of this performance improvement. If it is not designed carefully, it could leads to poor performance though.