2012-04-23 16 views
22

Cómo convertir el motor de almacenamiento de base de datos de InnoDB a MyISAM en MySQL? Encontré tantos sitios que convierten el motor de almacenamiento de la tabla de la base de datos, pero no para la base de datos. i attached screen shot for better understandMySql - Convertir InnoDB a MyISAM Motor de almacenamiento de la base de datos

Gracias de antemano.

+0

Qué quiere decir que ya ha probado esto? [http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html](http://dev.mysql.com/doc/refman/5.0/en/converting- tables-to-innodb.html) –

+0

Quiero convertir bases de datos, no tablas. Este enlace es para la conversión de tablas, no de base de datos. –

+0

Chicos si esta pregunta es útil, también puede votar no solo responder ... –

Respuesta

11

No puede cambiar el motor de almacenamiento predeterminado para una base de datos, pero puede cambiarlo para todo el servidor utilizando la configuración de configuración default-storage-engine. Sin embargo, tenga en cuenta que esto no cambiará realmente el motor de almacenamiento para las tablas existentes, solo para las nuevas creadas después del cambio.

+0

Gracias por la respuesta que me ayuda y sí, lo siento por la respuesta tardía. –

8

Las bases de datos son solo la forma de MySQL de espacios de nombres, por lo que la base de datos no tiene ningún motor asociado, solo las tablas tienen un motor de almacenamiento. Por eso puede tener una base de datos con varias tablas diferentes, cada una con un motor diferente.

Deberá modificar cada tabla una por una para cambiarlas a InnoDB.

12
ALTER TABLE `table_name` ENGINE=INNODB 
35

use this !!

SET storage_engine=MYISAM; 
ALTER TABLE table_name ENGINE = MyISAM; 

-cheers !!

+0

Quiero convertir InnoDB a motor de almacenamiento MyISAM de base de datos, no tabla. –

+2

Gracias. Esto me ahorró mucho tiempo. Cuando hice esto en un Raspberry PI que ejecuta MySQL (mariadb), el sistema finalmente dejó de bloquearse cuando hacía grandes insertos o actualizaciones. Literalmente 10 veces más rápido –

3

para hacerlo permanente, añadir a my.cnf (pocos lugares dependiendo del contexto)

/etc/my.cnf

default-storage-engine= MyISAM

para la seguridad, la salida de la lista db con espectáculo bases de datos;

en mi caso, utilizando php para rapidito ..

$db = mysql_connect('localhost','someadmin','somepass'); 
$dbs = array(); 
$dbs[] = 'test'; 
$dbs[] = 'myImportantDb'; 

foreach($dbs as $v){ 
    mysql_select_db($v); 
    $q = mysql_query('show tables'); 
    $tables = array(); 
    while($r = mysql_fetch_row($q)){ 
      $tables[] = $r[0]; 
    } 
    foreach($tables as $t){ 
     echo "do $v.$t\n"; 
     mysql_query('ALTER TABLE `'.$t.'` ENGINE=MyISAM;'); 
    } 
} 
mysql_close($db); 
1

En PhpMyadmin 4,5 Seleccione la pestaña variable y encontrar para motor almacenamiento y seleccione Editar y tipo MyISAM.

Cuestiones relacionadas