Afortunadamente para nosotros, los administradores de base de datos, MySQL nos permite trabajar con diferentes motores de almacenamiento, entre los que destacan MyISAM e InnoDB.
¿Motor de almacenamiento?, ¿Qué es eso? 🤔, verás, un motor de almacenamiento se el encargado de almacenar, gestionar y recuperar toda la información de una tabla. Es por ello que es de suma importancia que nosotros conozcamos la existencia de estos motores, cuales son sus principales diferencias y en qué casos es bueno utilizar uno u otro, de esta forma que podamos garantizar un mejor performance en nuestras aplicaciones. 😉
Para que nosotros conozcamos que motor de almacenamiento podemos utilizar basta con ejecutar la siguiente sentencia en nuestra terminal.
SHOW ENGINES;
Obtendremos el siguiente listado.
- InnoDB
- MRG_MYISAM
- MEMORY
- BLACKHOLE
- MyISAM
- CSV
- ARCHIVE
- PERFORMANCE_SCHEMA
- FEDERATED
En esta ocasión nos centraremos en explicar los dos motores de almacenamiento más populares, me refiero a MyISAM e InnoDB.
MyISAM es el motor por default de MySQL. Una de las principales ventajas de este motor es la velocidad al momento de recuperar información. MyISAM es una excelente opción cuando las sentencias predominantes en nuestra aplicación sean de consultas. Esta es una de las razones por las cuales MyISAM es tan popular en aplicaciones web.
Si tu aplicación necesita realizar búsquedas full-text MyISAM es un mejor opcion.
La principal desventajas de MyISAM recae en la ausencia de atomocidad, ya que no se comprueba la integridad referencial de los datos. Se gana tiempo en la inserción, sí, pero perdemos confiabilidad en los datos.
Por otro lado tenemos el motor de almacenamiento InnoDB. La principal ventaja de este motor recae en la seguridad de las operaciones. InnoDB permite la ejecución de transacciones, esto nos garantiza que los datos se persisten de forma correcta y si existe algún error podamos revertir todos los cambios realizados.
Algo interesante a mencionar sobre InnoDB es que este motor realiza un bloqueo total sobre un tabla cuando es ejecutada una se las siguientes sentencias.
- Select
- Insert
- Update
- Delete
Si deseamos trabajar con transacción y la integridad de los datos sea crucial nuestra mejor opción será InnoDB, por otro lado, sí lo que deseamos es una mayor rapidez al momento de obtener información será necesario utilizar MyISAM.
Gestión
Si nosotros así lo deseamos podemos cambiar el motor de almacenamiento. Existen dos formas de hacer esto. La primera, es modificar el archivo my.cnf.
[mysqld]
default-storage-engine = innodb
La segunda forma es hacerlo directamente desde nuestra sección, basta con ejecutar la siguiente sentencia.
SET storage_engine=INNODB;
En ambos casos modificamos el motor de almacenamiento de MyISAM a InnoDB.
Si nosotros deseamos conocer qué motor de almacenamiento utiliza una tabla en particular, podemos hacerlo ejecutando la siguiente sentencia.
SHOW TABLE STATUS WHERE `Name` = 'tabla' \G;
Si deseamos crear una tabla utilizando un motor en particular, debemos seguir la siguiente estructura.
CREATE TABLE tabla_innodb (id int, value int) ENGINE=INNODB;
CREATE TABLE tabla_myisam (id int, value int) ENGINE=MYISAM;
CREATE TABLE tabla_default (id int, value int);
-
Módulo 1 | 8 clases
Introdución
expand_more-
play_circle_outline
Clase 1
Introducción
-
play_circle_outline
Clase 2
¿Qué son las bases de datos?
-
play_circle_outline
Clase 3
Modelo relacional
-
play_circle_outline
Clase 4
Lenguaje SQL
-
play_circle_outline
Clase 5
Instalación MySQL windows
-
play_circle_outline
Clase 6
Instalación MySQL Linux
-
play_circle_outline
Clase 7
Instalación MySQL Mac OS
-
play_circle_outline
Clase 8
Restablecer contraseña root MySQL
-
-
Módulo 2 | 3 clases
Servidor de base de datos
expand_more -
Módulo 3 | 10 clases
Base de datos y tablas
expand_more-
play_circle_outline
Clase 1
Crear tablas
-
play_circle_outline
Clase 2
Tipos de datos
-
play_circle_outline
Clase 3
Listar y eliminar tablas
-
play_circle_outline
Clase 4
Obtener información de una tabla
-
play_circle_outline
Clase 5
Crear tablas a partir de otras
-
play_circle_outline
Clase 6
Insertar registros
-
play_circle_outline
Clase 7
Insertar múltiples registros
-
play_circle_outline
Clase 8
Ejecutar archivos .SQL
-
play_circle_outline
Clase 9
Condicionar sentencias
-
play_circle_outline
Clase 10
Consultas rápidas
-
-
Módulo 4 | 8 clases
Restricciones
expand_more-
play_circle_outline
Clase 1
Restricciones
-
play_circle_outline
Clase 2
Valores únicos y nulos
-
play_circle_outline
Clase 3
Valores por defualt
-
play_circle_outline
Clase 4
Números positivos
-
play_circle_outline
Clase 5
Tipo Enum
-
play_circle_outline
Clase 6
Llaves primarias
-
play_circle_outline
Clase 7
Llaves Foraneas
-
play_circle_outline
Clase 8
Implementación de restricciones
-
-
Módulo 5 | 2 clases
Modificar tablas
expand_more -
Módulo 6 | 12 clases
Sentencias basicas
expand_more-
play_circle_outline
Clase 1
¿Cómo se ejecutan las sentencias SQL?
-
play_circle_outline
Clase 2
Obtener registros mediante condiciones
-
play_circle_outline
Clase 3
Operadores lógicos
-
play_circle_outline
Clase 4
Registros nulos
-
play_circle_outline
Clase 5
Registros mediante rangos
-
play_circle_outline
Clase 6
Búsqueda por listas
-
play_circle_outline
Clase 7
Registros unicos
-
play_circle_outline
Clase 8
Alías
-
play_circle_outline
Clase 9
Actualizar registros
-
play_circle_outline
Clase 10
Eliminar registros
-
play_circle_outline
Clase 11
Eliminación en cascada
-
play_circle_outline
Clase 12
Restaurar definición de una tabla
-
-
Módulo 7 | 8 clases
Funciones
expand_more-
play_circle_outline
Clase 1
Funciones en SQL
-
play_circle_outline
Clase 2
Funciones sobre strings
-
play_circle_outline
Clase 3
Funciones sobre números
-
play_circle_outline
Clase 4
Funciones sobre fechas
-
play_circle_outline
Clase 5
Funciones sobre condiciones
-
play_circle_outline
Clase 6
Crear función
-
play_circle_outline
Clase 7
Listar funciones
-
play_circle_outline
Clase 8
Ejecutar sentencias dentro de funciones
-
-
Módulo 8 | 12 clases
Sentencias avanzadas
expand_more-
play_circle_outline
Clase 1
Búsqueda mediante strings
-
play_circle_outline
Clase 2
Expresiones regulares
-
play_circle_outline
Clase 3
Ordenar registros
-
play_circle_outline
Clase 4
Limitar registros
-
play_circle_outline
Clase 5
¿Qué son las funciones de agreación?
-
play_circle_outline
Clase 6
Funciones de agregación
-
play_circle_outline
Clase 7
Agrupamiento
-
play_circle_outline
Clase 8
Condiciones bajo agrupamiento
-
play_circle_outline
Clase 9
Unir resultados
-
play_circle_outline
Clase 10
Sub consultas
-
play_circle_outline
Clase 11
Validar registros
-
play_circle_outline
Clase 12
Ejercicios
-
-
Módulo 9 | 7 clases
Joins
expand_more-
play_circle_outline
Clase 1
Trabajo con múltiples tablas
-
play_circle_outline
Clase 2
Inner join
-
play_circle_outline
Clase 3
Sub clausula using
-
play_circle_outline
Clase 4
Left Join
-
play_circle_outline
Clase 5
Right Join
-
play_circle_outline
Clase 6
Múltiples joins
-
play_circle_outline
Clase 7
Productos cartesianos
-
-
Módulo 10 | 4 clases
Vistas
expand_more -
Módulo 11 | 7 clases
Procedimientos
expand_more-
play_circle_outline
Clase 1
Procedimientos almacenados
-
play_circle_outline
Clase 2
Crear procedimientos
-
play_circle_outline
Clase 3
Eliminar procedimientos
-
play_circle_outline
Clase 4
Obtener valores
-
play_circle_outline
Clase 5
Condicionales
-
play_circle_outline
Clase 6
Casos
-
play_circle_outline
Clase 7
Ciclos
-
-
Módulo 12 | 4 clases
Transacciones
expand_more -
Módulo 13 | 5 clases
Extras
expand_more -
Módulo 14 | 5 clases
Triggers
expand_more -
check_circle_outlineMódulo 15
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-