MySQL 4.0 soporta cinco tipos de tablas: MyISAM, ISAM, HEAP, BDB (Base de datos Berkeley), e InnoDB. BDB e InnoDB son ambas tipos de tablas transaccionales. Adems de poder trabajar con transacciones en MySQL, las tablas del tipo InnoDB tambin tienen soporte para la definicin de claves forneas, por lo que se nos permite definir reglas o restricciones que garanticen la integridad referencial de los registros.
A partir de la versin 4.0, MySQL ha agregado InnoDB a la lista de tipos de tablas soportados en una instalacin tpica. En este artculo se asume que se cuenta ya con un servidor MySQL con soporte para el tipo de tablas InnoDB. En nuestro caso haremos uso de un servidor MySQL 4.013 ejecutndose en un sistema MSWindows.
Nota: para asegurarnos que tenemos soporte para el tipo de tablas InnoDB podemos ejecutar la siguiente sentencia:
mysql> SHOW VARIABLES LIKE '%innodb%'; +---------------------------------+------------------------+ | Variable_name | Value | +---------------------------------+------------------------+ | have_innodb | YES | | innodb_additional_mem_pool_size | 1048576 | | innodb_buffer_pool_size | 8388608 | | innodb_data_file_path | ibdata1:10M:autoextend | | innodb_data_home_dir | | | innodb_file_io_threads | 4 | | innodb_force_recovery | 0 | | innodb_thread_concurrency | 8 | | innodb_flush_log_at_trx_commit | 1 | | innodb_fast_shutdown | ON | | innodb_flush_method | | | innodb_lock_wait_timeout | 50 | | innodb_log_arch_dir | . | | innodb_log_archive | OFF | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | . | | innodb_mirrored_log_groups | 1 | | innodb_max_dirty_pages_pct | 90 | +---------------------------------+------------------------+ 20 rows in set (0.00 sec)
La variable ms importante es por supuesto have_innodb que tiene el valor YES.