I've heard the 'shard' technique pointed out several occasions regarding fixing scaling trouble for large websites. What's this 'shard' technique why is it so great?

Karl Seguin includes a good blog publish about sharding.

In the publish:

Sharding may be the separation of the data across multiple servers. The way you separate your computer data can be you, but generally it’s done on some fundamental identifier.

In brief, imagine seperating your customers_tbl across several servers. So Customers 1-5000 as well as on Server 1, Customers 5000-10000 on Server 2 etc. In case your data model is sufficiently abstract in code, it's frequently not really a huge alternation in code.

Obviously this method becomes difficult if all of your queries act like "Choose COUNT(*) FROM customers_tbl GROUP BY userType" however when your where's "WHERE userid = 5" it will work better.

As 'sharding' is area of the architecture concepts for big websites, you might be thinking about hearing 'eBay's Architecture Concepts with Randy Shoup' here.