2

I currently have MSM running 8 sites. Last week I had to create a new site and I experienced a whole host of issues, from addons not working as expected to show stopping database errors. It took 4 goes to get it working.

Does anyone have any experience on running more than 10 sites using MSM?

Does anyone know how I might split the main parent site into its own EE but share the content and members with other installations of EE and MSM?

Does anyone have any other suggestions?

Thanks.

6

There is a hard limit of 4096 columns in a MySQL table. Each site in MSM creates additional columns in the exp_channel_data table: 2 columns for each custom field. If you work out how many custom fields you have, double that number and divide it into 4096 and round down you will end up with an approximate maximum for the number of sites that is possible:

Maximum no of sites = 4096 / [No of custom fields] * 2

Note that other factors can effect the maximum number of columns permissable, such as the total allowed row size in a MySQL table (65,535 bytes) [1]

For this reason, MSM is not really a scalable solution to the problem of multiple sites which share data. You might be better off sharing data with a parent/base site via an API [2].

Alternatively, you could investigate assigning fieldgroups created in site 1 to channels created in site X, so that those database columns are reused rather than duplicated. This can be done by manually editing the field_group value assigned to a channel in the exp_channel table. Surprisingly, the CP publish/edit forms work as expected with this change. However, I haven't investigated how this would impact tags used in front-end templates.

[1] http://dev.mysql.com/doc/refman/4.1/en/column-count-limit.html
[2] http://docs.eeopenapi.apiary.io/

| improve this answer | |
  • 1
    Excellent answer. I've run into the MySQL column size issue and it's not pretty. – Judd Lyon Dec 19 '13 at 22:28
  • Hi Mark, excellent answer thank you. Although the hard limit may be 4096 columns my intuition tells me that getting anywhere near that number of columns will have the database groaning. Exposing the data via an API does make sense and may be the best approach we have. – KoalaKid Dec 29 '13 at 13:11
  • Quick update, using Mark's equation I worked out with our configuration that we can run 33 sites. I would say that our sites were on the small to medium size. – KoalaKid Jan 9 '14 at 14:12
  • FWIW, row size is far more often the issue, and depending on what field types you use, could appear with as few as 500 fields. More typically it occurs around 2000. – Derek Jones Oct 23 '14 at 20:58
1

In short no... but EL has always recommended you keep it below 100. From memory at least. Considering the way the channels and fields tables are setup - i am thinking it would hit that database hard pretty hard running too many. So you would probably end up paying for high end hosting as a compromise.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.