cancel
Showing results for 
Search instead for 
Did you mean: 

MyISAM is a must for me

SOLVED

MyISAM is a must for me

Hello everyone,

For some reason, my database tables have to be MyISAM

Do you have any suggestion for Installing Magento with MyISAM table storage?

 

If there is no way to do it in installation steps, what if i change them manually from InnoDB to MyISAM by phpmyadmin? Will it work ?

Is it possible in the next upgrades, tables engins automaticlally get change to InnoDB again?

 

Regards

Babak

 

1 ACCEPTED SOLUTION

Accepted Solutions

Re: MyISAM is a must for me

Very bad idea.  The reason for this is that the DB schema uses foreign keys to update and delete entries such as products, customer details etc. An example is a customer record.  The main customer_entity table holds minimal information about the customer.  All other info is held in eav tables so when you delete a customer record it triggers the delete on the customer_entity table which due to it's foreign keys allows a cascading delete on the related eav tables and so on (customer addresses etc).   If tables were set up as MyISAM these child tables would never be affected and you would end up with orphan data and data integrity issues.

 

Upgrades and some extensions will also have problems as they will not be able to apply any foreign key changes (and will probably just fail).

 

Is this a limitation of your hosting or is there some other reason why you can't use InnoDb?  If it's hosting I'd either go back to hem and ask if it can be activated or look elsewhere.

Richard Cleverley
Magepim Ecommerce Services

View solution in original post

3 REPLIES 3

Re: MyISAM is a must for me

Very bad idea.  The reason for this is that the DB schema uses foreign keys to update and delete entries such as products, customer details etc. An example is a customer record.  The main customer_entity table holds minimal information about the customer.  All other info is held in eav tables so when you delete a customer record it triggers the delete on the customer_entity table which due to it's foreign keys allows a cascading delete on the related eav tables and so on (customer addresses etc).   If tables were set up as MyISAM these child tables would never be affected and you would end up with orphan data and data integrity issues.

 

Upgrades and some extensions will also have problems as they will not be able to apply any foreign key changes (and will probably just fail).

 

Is this a limitation of your hosting or is there some other reason why you can't use InnoDb?  If it's hosting I'd either go back to hem and ask if it can be activated or look elsewhere.

Richard Cleverley
Magepim Ecommerce Services

Re: MyISAM is a must for me

Thank you so much,

 

Actually i have a memory limit on my VPS and that's why i prefer not to use INNODB engine . But it seems that i have no way but upgrading the VPS Memory...

 

Thank's again

 

Regards

Babak

Re: MyISAM is a must for me

Expect table bloat from missing delete on cascade leaving orphaned rows littered throughout the database and corrupted data later on in your life as the foreign keys aren't there to enforce relations and you do not have transaction logging and rollback on failed database commits.

This is a typical mistake of neophyte Magento users, the failure to provide adequate resources so that Magento will run. Saving money by running Magento on an inadequate, memory starved server has an extremely high price down the road. Before the eBay overhaul, these forums were littered with all the broken remains of the roadside crashes and failed dreams of those who chose inexpensive, shared hosting.