I’m hoping someone can help me out. I’ve got 7 sites in a MSM install under development and am unexpectedly bumping up against mysql’s Column-Count and Row-Size Limits. I’d like some advice on how to stay well within those limits and have decent performance. I’ve looked through some helpful forum posts like
Mysql Error: Too many columns
MySQL Error: 1054
My MSM situation:
* Seven sites in total
* custom field types include a fair number of file, playa, matrix, wygwam, p&t divebar, etc fields
* one site has 60 custom fields
* six sites have 130 custom fields each (they are science support sites with lots of info, not easy to redo the schema)
* total of 840 custom fields
* 1680 fields/columns in exp_channel_data
Currently, I’m under mysql’s limit, but probably not by much given that I got database errors for exp_channel_data before reducing the number of custom fields. For exp_channel_data, I’m clearly beyond the 1000 column limit for innoDB. So I switched exp_channel_data to myISAM. Nonetheless, even with that table in myISAM, I still had problems before reducing the number of custom fields. Presumably I’m still pushing the 64kb row size/length limit. Given that my average row length is 2.2kb, there must be a few rows that are much much longer than average (I haven’t dug into that yet).
Got any advice, especially related to the following questions?
1) How hard will it be to get decent performance with my current setup, given that it’s edging toward the mysql limit? Is it no big deal or really tricky? Are there specific things to watch out for?
2) How important is it to reduce the number and types of custom fields further? Are there particular field types that are especially long contributors to the length limit that I should look for?
3) Should I switch all tables to myISAM so that I don’t have a mix of engines?
4) Is there some magical workaround to all this?
Finally, a little rant in EllisLab’s direction:
<rant>How was I supposed to know that the EE schema would grow “sideways” so quickly with MSM? The MSM docs are way too lean. And using a table structure like that of exp_channel_data seems kinda crazy for MSM. It would seem to severely limit MSM’s use. I’ve built a few EE sites previously and loved it. Unfortunately, my experience with MSM has been quite different so far.</rant>