A form of data partitioning in which a large database table is split over multiple servers in order to balance load. Some property of the data is used to select which server should handle a given row, e.g. the primary id modulo the number of servers.
Sharding should be a last resort in database performance optimisation because of the difficulty of changing the allocation of data to servers, e.g. if the number of servers changes or the distribution is found to be uneven.