Usually for a certain version of Oracle data and indexes may be stored in a limited number of ways, for example index-only tables, b-tree indexes, external tables, temporary tables… New types of indexes and tables require a version upgrade. This is a major distinction between Oracle and MySQL.
Storage Engines
MySQL has components called Storage Engines, this engines determine the way information is stored. Engines have different features and may be used to cover different requirements. For example, MyIsam is the default engine and the Information_Schema - the equivalent to Oracle’s Dictionary - is stored using it. One thing that will surprise Oracle DBA’s is that this engine does not support transactions (you do not need to commit, but you cannot rollback and you cannot define a transaction unit).
MyIsam is the most usual engine, but it is not the only one. InnoDB, an engine provided by InnoBase, a company acquired by Oracle Corp, is another one. It supports transactions and has certain similar concepts to Oracle Database, for example tables are stored in a tablespace (MyIsam tables are stored in a file each one).
Mixing engines
You should choose which is the right engine for your application and it is possible to use several engines at the same time, in the same query. You must be careful when doing things like this as trying to rollback a transaction involving both transactional and non-transactional engines may give you unexpected results: rollback transactional tables but leaving the rest untouched.
Engine availability
Some storage engines are always available, others must be enabled. In MySQL 5.0 engines must be configured at build time and may be disabled/enabled at startup time later versions support dynamic engine loading. You must enable only the engines you plan to use as they consume memory.
Optimization
Having so many different engine configurations poses a challenge for the MySQL optimizer, as the optimal execution plan must be decided outside the engine. What MySQL does is to ask each storage engine information about tables and indexes involved in the query.
Engine migration
It is possible to migrate a table from one engine to another but you must be careful as some table features will be lost if they are not supported by the engine.
Migration may be performed via alter table, dump and import (export/import equivalent) or using sql create/insert/select.

