I have existing mySql database which now use myISAM engine. I lately start to experience some performance issues, due the large numbers of concurrent users on the website, and I would like to switch the database to innoDB engine.
Database has about 35 tables full with data.
My Questions are:
If i go to phpMyAdmin, and change all the tables from myISAM to innoDB, can I cause some mess in the existing data?
I read somewhere that myISAM lock the tables and excecute the update queries one by one, and that innoDB does not use locks. Is that true?
If I use the innoDB, will those update queries be performed faster?
If i add indexes on columns , that I frequently use in my select and update queries, will those updates and searches be performed faster with innoDB compared with myISAM?
I have primary keys in all tables. Will those primary keys continue to work after I switch the engine, or I have to re-create them.
Any links where I can read how can I perform all those changes trough phpMyAdmin will be deeply appreciated.
1. If i go to phpMyAdmin, and change all the tables from myISAM to innoDB, can I cause some mess in the existing data?
no
2. I read somewhere that myISAM lock the tables and excecute the update queries one by one, and that innoDB does not use locks. Is that true?
not quite true – myisam locks the entire table, but innodb locks only the row(s) affected
3. If I use the innoDB, will those update queries be performed faster?
yup
4. If i add indexes on columns , that I frequently use in my select and update queries, will those updates and searches be performed faster with innoDB compared with myISAM?
searches no, updates yes
5. I have primary keys in all tables. Will those primary keys continue to work after I switch the engine,
yup
Any links where I can read how can I perform all those changes trough phpMyAdmin will be deeply appreciated.
link not necessary, just run this query in the SQL tab –