Adriano Faria Posted September 1, 2022 Posted September 1, 2022 Fresh install. Not sure this is expected. Only IPS apps; no 3rd-party resources: SeNioR- 1
CodingJungle Posted September 1, 2022 Posted September 1, 2022 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). SeNioR-, InvisionHQ, Adriano Faria and 2 others 5
Adriano Faria Posted September 1, 2022 Author Posted September 1, 2022 44 minutes ago, CodingJungle said: it is likely your databases default engine type is myisam instead of innodb Will check it out.
Ryan Ashbrook Posted September 2, 2022 Posted September 2, 2022 Hmm... I'll make a note of this. InnoDB is always preferred because it uses row level locking, rather than table level locking like MyISAM. I see forums_posts is in the MyISAM column when that's probably the most important table (outside of core_search_index) to be InnoDB. SeNioR- and Adriano Faria 2
nodle Posted September 2, 2022 Posted September 2, 2022 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. SeNioR- 1
Recommended Posts