Tomado de:
http://foro.elhacker.net/index.php/topic,251.0.html Código PHP:
Ya hemos visto antes como configura el MySQL para optimizar el uso del query_cache_size, query_cache_limit y key_buffer y vamos a ver ahora como convertir una tabla MyISAM a InnoDB.
InnoDB es un sistema transaccional de bases de datos que está activado por defecto en MySQL 4.x y superiores. Básicamente lo que hace es leer más lento, pero escrbir más rápido.
Para convertir una tabla MyISAM a InnoDB:
Desde el PhpMyAdmin:
ALTER TABLE nombre_de_la_tabla
TYPE=InnoDB;
Aunque antes de eso tenemos que configurar el my.cnf para usar InnoDB:
my.cnf MySQL Configuración
# Data files must be able to hold your data and indexes.
# Make sure that you have enough free disk space.
#use this line for MySQL 4.xx.xx
innodb_data_file_path = ibdata:1G:autoextend:max:2G
#innodb_data_file_path = ibdata:1G
innodb_buffer_pool_size = 50M
innodb_additional_mem_pool_size = 10M
innodb_file_io_threads = 8
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=20M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
Más info:
http://dev.mysql.com/doc/mysql/en/adding-and-removing.html
http://dev.mysql.com/doc/mysql/en/innodb-configuration.html
http://www.databasejournal.com/features/mysql/article.php/3367871
Si después de añadir un nuevo ibdata el MySQL no arranca es porque seguramente hay más de 1 ibdata (el que se crea por defecto y el que acabamos de decirle que añada) y no sabe cuál escoger.
Te recomiendo pasar todas las tablas que estén en InnoDB a MyISAM otra vez (para no perder nada) y borrar todos los ibdata que hayan (aunque tengan x tamaño, estarán vacios), y arrancar el MySQL de nuevo y el solito creará el ibdata de nuevo con x tamaño que le hayamos dicho.
Saludos.