Convertir una base de datos (o una tabla) de MyISAM a InnoDB

No Comments

En este artículo te enseñaremos como convertir  una base de datos de MyISAM a InnoDB de distintas formas, tanto desde phpMyAdmin como por consola SSH (terminal).

También veremos como solucionar el error que suele dar

De todos es sabido las innumerables mejoras de rendimiento que suponen que el motor de la base de datos sea InnoDB en vez de MyISAM.

Una de las principales razones por las que los sitios con grandes bases de datosy muchas consulta  (como WordPress)  se ralentizan es porque su base de datos no se ha optimizado. Muchos de los sitios más antiguos siguen utilizando el motor de almacenamiento MyISAM en su base de datos. En los últimos años, InnoDB ha demostrado tener un mejor desempeño y ser más confiable.

Una razón importante para usar InnoDB sobre MyISAM es la falta de un bloqueo completo a nivel de tabla. Esto permite que sus consultas se procesen más rápido.

 

Antes de empezar, haga SIEMPRE una copia de seguridad de su base de datos antes de hacer algo potencialmente destructivo. 

 

Base de datos de MyISAM a InnoDB

Base de datos de MyISAM a InnoDB

 

Convertir tablas MyISAM a InnoDB con phpMyAdmin

La forma más fácil de cambiar el motor de base de datos de una tabla de base de datos MySQL es a través de phpMyAdmin disponible en cPanel, Vesta o cualquier otro panel de administración.

Para encontrar las tablas  MyISAM lo más útil es Mirar en «tipo»:

Buscar tipo de tabla MyISAM

Buscar tipo de tabla MyISAM

 

Por ejemplo, si tiene una tabla de base de datos llamada my_table usando el motor MyISAM y desea cambiar el motor de MyISAM a InnoDB , deberá:

Acceda a phpMyAdmin y seleccione su base de datos.

Luego haga clic en la pestaña SQL , coloque la siguiente consulta y haga clic en el botón Ir:

ALTER TABLE wp_tabla_que_sea ENGINE=InnoDB;

 

Pasar a InnoDB PhpMyAdmin

Pasar a InnoDB PhpMyAdmin

 

Si la consulta se ejecuta correctamente, el motor de base de datos de la tabla se cambiará a InnoDB.

Esto es cómodo si tiene una base de datos con pocas tablas a cambiar.


 

 

Convertir tablas MyISAM a InnoDB con SSH

Si bien puedes convertir  manualmente tabla por tabla, no es muy práctico si tiene muchas tablas para convertir o muchas bases de datos. Para esto en mucho más rápido hacerlo por consola SSH:

  1. Nos conectamos por SSH con usuario root
  2. Ingresa lo siguiente en la línea de comandos  y usa su contraseña de MySQL.  Asegúrese de sustituir su nombre de usuario (por ejemplo, MiUsuario ) y su base de datos (por ejemplo, Mi_Base_de_Datos ) en los dos lugares apropiados, a continuación:
    mysql -B --user=MiUsuario --host=127.0.0.1 --password Mi_Base_de_Datos --disable-column-names --execute "SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='MyISAM' AND table_schema='Mi_Base_de_Datos';"  
  3. Copia el resultado  que esto genera, y pégalo en un editor de texto.
  4. Vuelve al terminal SSH (shell) nuevamente, ejecuta el siguiente comando para acceder al indicador de comandos de MySQL. Asegúrate de sustituir su nombre de usuario (por ejemplo,MiUsuario ) y el nombre de la base de datos (por ejemplo,Mi_Base_de_Datos ) a continuación:
     mysql --user=MiUsuario --host=127.0.0.1 --password  i_Base_de_Datos
  5. Copia los resultados de los dos pasos anteriores y pégalas en tu terminal y ejecutalo.

Y ya está, con estos pasos convertirás todas las tablas MyISAM a InnoDB

 

Solución al error «ERROR 1214 (HY000) at line 2956: The used table type doesn’t support FULLTEXT indexes»

En ocasiones hay tablas que no se pueden convertir y que nos lanzan el error «The used table type doesn’t support FULLTEXT indexes».

Este error lo pueden sacar tanto desde phpMyAdmin como desde consola por SSH. Ocurre por que alguna parte de la tabla tiene indices FULLTEXT y estos no son soportados por InnoDB.

Para convertir la tabla hay que borrar estos FULLTEXT indexes desde el terminal:

 

Ver las tablas con indices:
SHOW INDEX FROM admin_infoescuelas3.wp_2_posts;

Los pasos a seguir son los siguientes:

  1. Nos conectamos a terminal
  2. Nos conectamos a Mysql con
    # mysql
  3. Nos conectamos a la base de datos con las tablas a convertir:
    MariaDB [(none)]> connect nombre_basedatos
  4. Buscamos los indices dentro de la tabla que nos da el error con:
    SHOW INDEX FROM nombre_basedatos.nombre_tabla;

  5.  Vemos el nombre del indice. Esto nos devolverá algo tipo:
    Indices fulltext

    Indices fulltext

     

  6. Por último eliminamos los 2 indices FULLTEXT con:
    DROP INDEX Keyname_indice ON nombre_tabla;
    en este caso sería
     DROP INDEX yarpp_content ON wp_posts;

 

Una vez eliminados los indices de la tabla ejecutar lo siguiente para convertir a InnoDB la tabla:

ALTER TABLE nombre_basedatos.nombre_tabla ENGINE=InnoDB;

 

Y ya tendríamos la base de datos completa en InnoDB

 

 

Deja tu comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Kreactiva: Tu agencia de publicidad, marketing online y social media En Kreactiva nos preocupamos por ti: Consultoria,SEO, SEM, SMO, CRM y fidelización online.

Google Plus



No Comments

Otros artículos interesantes

Ver todos los post

Errores SEO comunes en comercio electronico

Aprende a posicionar tu tienda online. Los departamentos de marketing de las…
Seguir leyendo

Como mejorar el SEO rediseñando tu web

En este articulo vamos a tratar de explicar como mejorar el posicionamiento…
Seguir leyendo
Intercambio de enlaces 2017

Intercambios de enlaces para SEO

Premisas básicas para el intercambio de enlaces sin ser penalizado por Google…
Seguir leyendo
Creación de contenido de alta calidad

Creación de contenido de alta calidad para webs

¿A quién debe contratar para hacer contenido de calidad para su web? Sorpresa!!!…
Seguir leyendo

Data Highlighter de Google

Google anunció la semana pasada una nueva herramienta llamada Data Highlighter (Resaltador…
Seguir leyendo
contenido optimizado para SEO

Creación de contenido optimizado para SEO

Asegúrate de que tu contenido es el mejor posicionado! A veces, la…
Seguir leyendo

¿Es beneficioso para la empresa el Marketing de Afiliación?

Existen varios factores para determinar si es adecuado para cualquier marca utilitzar…
Seguir leyendo
Alternativas a Google Adsense

Alternativas a Google Adsense

Cuando empezamos a monetizar nuestro tráfico web, una de las primeras preguntas…
Seguir leyendo

Bancos de imágenes gratuitos

Todos los diseñadores, bloggers y gente que se dedica a crear contenido…
Seguir leyendo

Google Maps para el iPhone

Google anunció Google Map para iPhone en Google Map. Desde el 13…
Seguir leyendo

Como contratar un Community Manager

Todo lo que tienes que saber antes de contratar un Community Manager…
Seguir leyendo

Seo VS PPC ¿Que es mas rentable?

Tráfico y las visitas en las webs no suceden por accidente. Todo el…
Seguir leyendo

Actualización de las directrices de Youtube

Google actualiza las directrices para creadores de contenido para YouTube No se…
Seguir leyendo
Mejores redes de afiliacion

¿Cuál es la mejor red de afiliación?

Los sistemas y redes de afiliación son muy variadas y complejas puesto…
Seguir leyendo

Como posicionar una pagina web en google y el resto de buscadores

El posicionamiento web (SEO) sigue siendo un punto clave en las estrategias…
Seguir leyendo

Últimos cambios en el buscador de Google

Es un hecho conocido que Google trabaja continuamente en la mejora de…
Seguir leyendo
Empresas de Google

Empresas de Google

Ayer nos enteramos de que Google va a cambiar de nombre, creando…
Seguir leyendo
virus wordpress

Virus de WordPress que redirige a otros sitios. Solucion

Si te has encontrado con que tu Wordpress redirige hacia páginas externas…
Seguir leyendo