Most of the limits in SharePoint are soft limits. In other words, you may exceed the limits, but in most cases you will see significant performance degradation. Some of the recommendations are as below:
Site Collection
50,000 per website
Sub site
2000 per top level site collection
Documents
10 million per document library
This is a very arguable limit. This depends on the document size, and what specifically are you doing with the document. For instance, if you are checking-in, out and versioning – this limit is a lot lower.
Also, no view must return more than 2000 documents unless you create logical indexes on certain columns, in which case you can go to about 20,000 documents per view.
Items
2000 per view
As mentioned above, no view must return more than 2000 documents unless you create logical indexes on certain columns, in which case you can go to about 20,000 documents per view. This limit is common to lists and document libraries.
Document File Size
50MB recommended, no more than 2Gb ever.
Anything greater than 2GB will error out. Anything greater than 50MB will severely negatively impact your database performance. Larger artifacts should be stored in a separate site in a separate content database on a separate spindle in the database server.
Lists
No more than 2000 lists per site
In this case, Lists = Lists + document libraries. If you have 2000 of these in one site, the navigation will become extremely clumsy, so in most cases you wouldn’t hit this limit.
Field Type
256 per list
No more than 256 fields in a list should be used. Crossing this limit causes severe performance degradation. Instead, you should use linked fields instead.
Web Parts
50 per page
This is again a very arguable limit. SharePoint webparts out of the box unfortunately do not support asynchronous loading. It is possible to introduce this behavior by modifying the aspx page, but it requires developer intervention. You will note that page load times increase exponentially as the number of webparts on a page increase. This also depends on the complexity of the webpart. You should leverage AJAX for pages with a lot of webparts.
Users
No more than 2 million per website
Also note, if the profile import of a user is too wide, this limit significantly affects both the shared service provider database, and the content database.
Number of SSPs in a farm
No more than 20. Recommended maximum = 3.
Number of websites per SSP
99
Number of sites per content DB
Less than 50,000
Number of content databases
100 per web application.
Number of search indexes
No more than 20 per farm, no more than one per SSP.
Index propagation becomes horribly complex as a large number of SSPs are added. To avoid this scenario, you should leverage scoped searches instead.
Content sources and start addresses
500 hard limit
Alerts
1 million alerts on a site
Your SMTP server will probably choke a long time before you hit this limit.
Search scopes
Less than 200 per site