I have a fairly large-scale site to build? How many custom fields can I use without running into MySQL database limitations?
From the MySQL docs:
"There is a hard limit of 4096 columns per table, but the effective maximum may be less for a given table."
Keep in mind that each field uses two columns, one for field data, another for field type. So divide the maximum column limit by two, and then subtract 3 for the entry_id, site_id, and channel_id columns; which leave you with the possibility of 2046.5 fields.
"Every table (regardless of storage engine) has a maximum row size of 65,535 bytes."
Here are full details: http://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html
Back in the EE1 days I remember some people hitting the limit at around 750 custom fields - usually caused by ambitious Multi-Site-Manager installations. I think they made some improvements in EE2 that may have pushed that a little higher, but either way unless you're using MSM it shouldn't be a problem even for massive sites.
I have maxed out at between 800-900 custom fields per EE install. This is on EE 1.6.7 and is an MSM installation with about 9 sites so not all of those custom fields are for a single site.
I'm guessing you know this but EE adds a new column for all entries with every new field (exp_channel_data). So if you had many field groups with many fields this table might hit MySQLs limit, but 2046 ((4096 - 3) / 2) fields is quite extreme and I'd say you need to reconsider your site structure if you need this many! The most I've used is a few hundred, including matrix fields, on a very complex site.
MediaGirl and James have posted the answer, but it's something that shouldn't be an issue.