It would help to know what version of EE you are using - good practice is to include this along with details of your php environment in your question; different versions of EE have different characteristics, so knowing this info helps you get a good answer sooner.
The 'row size too large' error is often associated with EE2's exp_channel_data table getting too wide; there is a limit on how wide a table can be in MySQL and in EE2 all the site variables are stored as columns in the same table - when you have too many site variables MySQL runs out of column space and EE throws errors.
There are some options to reduce the amount of space MySQL uses to store the table, but since they involve changing the structure of the table they may later lead to operational problems.
A better solution is to think about restructuring the variables you use - deleting any that you no longer need is a good start. If you cannot delete any, have a think about converting some to grid fields - grid fields store their data in a different way (the data is stored in tables separate from exp_channel_data and so moving variables to grid fields can reduce pressure on the size of the channel-data table).
An even better solution would be to upgrade the EE installation to a newer version of EE - I think EE3 and onwards (it might be EE4)stores variables in a different way (similar to how grid fields work) and eliminates the table size problem completely. EE2 updates sometimes cause problems (mostly due to the need to also update add-ons) but the new one-click updater does make the process a lot less problematic than it used to be.
HTH