this is pretty straightforward, not too technical though:
http://forums.devarticles.com/general-sql-development-47/difference-between-myisam-and-non-myisam-tables-1745.html
FTA:
"MyISAM is of course the default table type i'm MySQL. It's
an improvement over the now-deprecated ISAM table type. It
provides a simple tree structure for quick indexing on small
tables, typicall fewer than 10,000 rows of data.
There are some other types of tables supported in MySQL,
most of which won't provide any noticable differences.
A MERGE table is a table that only exists in memory, and
will not be saved if MySQL crashes or has to be restarted.
It is, as the name suggests, a merge of two (or more)
tables. If you drop a MERGE table, it only drops the
reference to the merge, not to the tables that are combined
in it. It's not good for much!
Another table, the one which is best for huge tables, is
InnoDB. It's probably the best RDBMS out there; it's
actually a whole set of drivers on it's own, and when you
use it, MySQL is really just a wrapper around the InnoDB
table. Slashdot and other megamammoth sites out there use
it, it's fast and effecient, but the trees are pretty large,
so it's not good for smaller tables.
There are a few others.. like BerkeleyDB, which isn't
anything special and doesn't provide any major performance
increase.
The major difference between the various table types are the
data tree structures and how they're handled within the RDBMS.
In the end, you'll probably find yourself sticking to MyISAM
unless you're on a very large-scale project, in which cas
eyou probably woudln't use MySQL anyway =D"
There is foolowing Differences between MYISAM and InnoDB
ENGINE:-
1)MYISAM does not support the foreign key constraint and
transaction but InnoDB support it.
2)MYISAM is faster then the InnoDB but in case of perforing
the count operation it takes more time then the InnoDB.
3) MYISAM occupies less memory sapce for tables rather than
InnoDB tables.
1.Transactions:MYISAM doesnt support any database
transactions means if the transactions related to large
amount of data transfer it will not provide because memory
is less. But INNODB will provide transactions.
2.Locking:MYISAM provide the table level locking means if
the data in one table has been modified by the other
table ,the entire table will lock for the next process.But
INNODB provide the row level locking only the row of the
table that is being updated is locked.
3.Foreign keys – MYISAM tables do not support foreign keys.
4.Data Types:MYISAM provide a full variety of datatypes,but
INNODB will not.
For the database from the previous question, please give an
SQL query which returns the invoice number of all invoices
which contain the article with the number ?1234?. The query
should be able to run under a MySQL 4.0 database.
The table tbl_sites contains the following data:
-----------------------------------------------------
Userid sitename country
------------------------------------------------------
1 sureshbabu indian
2 PHPprogrammer andhra
3 PHP.net usa
4 PHPtalk.com germany
5 MySQL.com usa
6 sureshbabu canada
7 PHPbuddy.com pakistan
8. PHPtalk.com austria
9. PHPfreaks.com sourthafrica
10. PHPsupport.net russia
11. sureshbabu australia
12. sureshbabu nepal
13. PHPtalk.com italy
Write a select query that will displayed the duplicated
site name and how many times it is duplicated?