Thread tagged as: Hosting

Switch from MyISAM to InnoDB

We infrequently experience crashes of some a few perch database tables. Website goes blank then. They appear as "marked as crashed" in cPanel's database diagnosis, and "repair" fixes this reliably. But it's still annoying when it happens. In the post I've read that InnoDB is robust to crashes. We don't use search on those sites, so there should be no impediment.

When I tried to switched the table engine (in PhpMyAdmin) it complained about the setting ROW_FORMAT.

Warning: #1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. Warning: #1478 InnoDB: assuming ROW_FORMAT=COMPACT.

Is it ok if that's set to COMPACT? And are there other things to think about when changing the table engine?

Urs Bräm

Urs Bräm 1 points

  • 4 years ago
Drew McLellan

Drew McLellan 2638 points
Perch Support

You should be fine to do that.

okay dokay

I've managed to get Perch Runway to install on a Microsoft Azure "Web App + MySQL" instance.

Part of the solution was to change all of the .sql installation files to use the InnoDB engine instead of MyISAM as the MyISAM isn't supported by Azure DB for MySQL. There was also a bit of code in /core/lib/PerchScheduledTasks.php that needed to be changed to InnoDB.

After these changes, creating a functional web.config for redirects and adding an Azure SendGrid account for email the site seems to be functioning well.

What functionality if any will be lost by using InnoDB instead of MyISAM?

Duncan Revell

Duncan Revell 78 points
Registered Developer

If it's a fairly recent version of MySQL on Azure, you won't lose anything - you probably gain performance. Before a certain version of MySQL (5.5 or 5.6), InnoDB didn't support full text search. As MyISAM has always supported full text search and the Perch developers don't know what version of MySQL a host might use, they specify MyISAM by default.