what are the difference between InnoDB and MyISAM. Which one I can go for? any areas where one provides and other doesnot provide? IS there any technological limitations in any of the both types? Please help me to choose the right type for my project?
There are several differences, but the most important I can think about are :
- InnoDB is a transactionnal engine -- i.e. it supports transactions
- InnoDB supports foreign keys
- MyISAM only does lock at the table level -- InnoDB does locks at the row level
The wikipedia entry on InnoDB lists a couple if differences -- some of which I didn't spoke about ;-)
And you could be interested by the Chapter 13. Storage Engines section of the MySQL manual, which is probably not a bad reference, when it comes to InnoDB and MyISAM.
Especially, I'd say :
The MySQL Docs provide a nice run-down and use cases. The storage engine you choose will depend on what you are using it for.
The largest difference is that innodb supports ACID compliant transactions and row level locking.
Another important difference: so far, MyISAM supports fulltext search, but InnoDB does not. So if you want to have a search index effective over text columns, you have to use MyISAM or hack around.