Splitting a database into several pieces, usually to improve the speed and reliability of your application.
Sharding strictly speaking is a synonym for "horizontal partitioning" or dividing up a database table by its rows.
In common use, sharding refers to having some data for an app on one database server, and other data in another. Often this is done by having specific tables hosted on specific servers, with a function determining which server contains the information being requested.
Sharding is frequently discussed with regard to large web based applications, but is not limited to any particular industry.
As a practical example, a WordPress MultiSite installation hosting several hundred thousand blogs could have the tables for sites 1-100,000 running on one database server 100,001-200,000 on another or 200,001+ on a third. An alternative sharding implementation could be to have the 50 busiest blogs' tables split between the first two servers all remaining blog data on the third server. Likewise, data could be partitioned based upon the geographic location of the web servers delivering each blog.
When our site became so popular it kept overwhelming our database servers, we looked into sharding the database between five different data centers.
The acting of discharging body waste (aka, shit/poo) in one's under garmets while trying to release stomache gas, aka performing the ritualistic nature of human beings: "farting"
Sharding in public is always an embarrassing act to perform.