Jump to content

4.7.2 Beta 3: InnoDB & MyIsam tables


Recommended Posts

foreach( \IPS\Db::i()->getTables() as $table){
    $def =  \IPS\Db::i()->getTableDefinition($table);
    if($def['engine'] === 'MyISAM') {
        $query = 'ALTER TABLE ' . $table . ' ENGINE=InnoDB;';
        \IPS\Db::i()->query($query);
    }
}

i use this snippet to convert them over to innodb. it is likely your databases default engine type is myisam instead of innodb (cause not every schema has the engine type when the table is created, so the db installer lets the db server select it. this is what looks like what is happening here). 

Link to comment
Share on other sites

You host is defaulted to MyISAM by default you can see it in the bottom right corner on your first screenshot. All your tables will default to that even on a fresh install. The same thing happened to me, and I had to convert them all to InnoDB. If IPS adds a new table in the future or even an add-on it will default to MyISAM everytime. The only way around this would be your host to set the default to InnoDB. But I can see from your screenshot that it is not.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...