1

Trying to upgrade Magento 1.3 to 1.4 ( for now 1.9 later )

Some tables are Innodb and some tables are MYIsam in the current version ( 1.3.24 ) . There are heaps of posts out there explaining differences between them , but I need to know If they can all be the same going forward ( if not why? ) - and what is the magento benefit of each.

I am trying to keep things simple as recently my whole store started choking up because it was running out of Innodb space.

Please excuse my ignorance I am a SQL Server developer so I am not overly familiar with the table types.

thanks :-)

Martin Thompson
  • 3,415
  • 10
  • 38
  • 62

1 Answers1

1

Magento expects everything except two tables to be InnoDB (Fulltext Search table, etc). It's needed for foreign key constraints to prevent database corruption, allow cascade deletes for data consistency across linked records and to provide transactional rollback on failed commits.

The things you've come to expect daily to happen in SQL Server, not some flatfile database which corrupts on a whim and needs specific delete commands to delete all related record information across all the tables (which Magento doesn't provide as it's expecting InnoDB)

Magento running on MyISAM suffers from database bloat because deleting stuff in one table leaves all the related junk in the other 5-6 tables that are supposed to be keyed to the base table.

Moving forward, you will need to take care of your storage problem and then convert to InnoDB. You will need to consult with somebody who has MySQL DBA experience to make sure it all comes together without any foreign key conflicts or corrupted data, which if certain tables are still MyISAM, may already have happened. Magento provides a database repair tool that you may want to experiment with on a test server to see what may be the current situation.

Fiasco Labs
  • 6,457
  • 3
  • 32
  • 43