I have a MySQL InnoDB table with 238 columns. 56 of them are TEXT type, 27 are VARCHAR(255).
I am getting MySQL error 139 when users insert data sometimes. After research I found that I'm probably running into InnoDB row size/column size/column count limitations. (I'm putting it that way because the specific limits among those three things are interdependent.)
Docs on InnoDB give an idea of the limits. If I switch this table to MyISAM is it likely to solve the problem?
I understand the maximum row size of 65,535 bytes. I think I'm hitting InnoDB's additional 8000 byte limit somehow.
Switching to PostgreSQL is also a remote option, but would take much longer.
Regarding the quantity of columns:
The class backed by this table represents a questionnaire. There are hundreds of questions.
Each column represents an attribute that clearly and distinctly belongs to the class CapitalGrantProposal
and no other class.
I could distribute the columns across several tables -- I could have tables capital_grant_proposal_part_1s
, capital_grant_proposal_part_2s
, etc. However, that would increase increase complexity to no good purpose.
Update:
Tried making the table MyISAM and it works. So I'm getting the MySQL error 139 with InnoDB but not with MyISAM.