Mysql error Row size too large in last 3.0.18.7

Started by Studio 42, January 04, 2017, 17:58:09 PM

Previous topic - Next topic

Studio 42

I have this problem with the query on trying to add a new language
QuoteRow size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs SQL=ALTER TABLE `#__virtuemart_products_de_de` CHANGE COLUMN `product_name` `product_name` VARCHAR(400) NOT NULL DEFAULT '' AFTER `product_desc`

I know the problem and this was confirmed by the server support.
The problem is because the table have all values set to var_char and the DB limit is too low.
THe solution is to change all fulll description to MEDIUMTEXT or LONGTEXT. Note that this solve some other user issue that was limited by the size of description text field.
If you check com_content all big fields use MEDIUMTEXT or LONGTEXT and this is not slower and simply remove the limits on some mysql servers.

I changed in the config dbnamesize=180 to not have the problem, but i really mean that the right solution is to convert descriptions to MEDIUMTEXT or better to LONGTEXT, so none have problems using Virtuemart.

A nice reference about varchar VS TEXT performance http://nicj.net/mysql-text-vs-varchar-performance/ (you can see that text can be very faster)