Hola a todos! Me gustaría compartir con ustedes un tutorial que elaboré para entender mejor el tema de InnoDB y MyISAM, sus ventajas y como podemos implementarlo en nuestras propias bases de datos 💪🏼
Introducción
Todo lo que aprenderás sobre SQL y MySQL
Instalación local de un RDBMS (Windows)
Instalación local de un RDBMS (Mac)
Instalación local de un RDBMS (Ubuntu)
La consola de MySQL
¿Qué es una base de datos?
CREATE
Comando CREATE
Tipos de columnas / Creación de la tabla books
Tipos de columnas / Creación de la tabla authors
Tipos de columnas usando / Creación de la tabla clientes
INSERT
Comando INSERT
Comando on duplicate key
Inserción de datos usando queries anidados
Bash y archivos SQL
Bash y archivos SQL
SELECT
Su majestad el SELECT
Comando JOIN
Left JOIN
Tipos de JOIN
5 casos de negocio
Continuación de casos de negocio
Comandos UPDATE Y DELETE
Consultas en MySQL
Super Querys
Comando mysqldump
Contenido Bonus
Bases de datos para Big Data
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Alberto Alcocer (Beco)
Aportes 95
Preguntas 18
Hola a todos! Me gustaría compartir con ustedes un tutorial que elaboré para entender mejor el tema de InnoDB y MyISAM, sus ventajas y como podemos implementarlo en nuestras propias bases de datos 💪🏼
Sin menospreciar, creo que el profesor tiene mucha experiencia pero en términos pedagógicos esta tomando los temas muy rápidos y la experiencia de aprendizaje deja mucho que desear. Espero puedan rehacer el curso.
Tipos de tablas de Bases de datos
**MyISAM **
** InnoDB**
RESUMEN:
En esta clase empezaremos creando las diferentes tablas que requerimos para las operaciones. La cantidad de tipos de datos en MySQL es enorme, en el sistema de archivos está la lista de de tipos y subtipos de datos.
Dos principales tipos de tablas por defecto:
innoDB y Myisam
InnoDb es un tipo de tabla robusta, segura en caso de fallas en disco duro y es lenta.
Myisam es una tabla directa, sencilla, y las operaciones y transaccional 1 a 1. La lectura y escrituro es mayor.
Estas condiciones afectan la estrategia en el momento de crear la base de datos.
***Tablas que crecen lento: Hacerlas en innoDB para realizarlas robustas.
***Tablas que crecen rápido, utilizamos mucho y tienen acceso a disco duro: Hacerlas en Myisam para darles agilidad al sistema
La clase se debería llamar motores de almacenamiento
2 Tipos de Tablas en MySQL :
InnoDB .- Es una tabla de BD, mas nueva, mas robusta, mas recuperable en caso de que haya alguna falla en el disco duro pero es un poco mas lenta.
MyISAM .- Es una tabla de BD muy directa, muy sencilla, muy rápida y las operaciones y transacciones son completamente uno a uno. La velocidad de lectura y escritura es mayor.
Un índice es un puntero, que es básicamente un espacio en memoria, que en MySQL hace referencia a a los datos de cierta cantidad de filas o tuplas de una serie de columnas.
Ahora en MySQL existen diferentes formas de representar un índice:
Considero que este curso, aunque toca temas muy básicos, como en la explicación del comando CREATE; Sí requiere que ya se tenga algo de conocimiento respecto a las bases de datos para poder entender a la perfección los statements y referencias que el profesor realiza. Así que recomiendo leer bastante sobre bases de datos, DDL, DML y tipos de bases de datos para poder comprender mejor estas clases.
Una buena práctica pedagógica es mostrar lo que se está explicando, lo mínimo que podría hacer Alberto es mostrar los nombre InnoDB y MyISAM.
5- Tipos de Tablas de MySQL y Estrategias. Tipos de datos
Dos tipos de tablas por defecto en MySQL:
-. InnoDB
Es una tabla de bases de datos más nueva y robusta, recuperable en caso de falla de disco duro pero es un poco más lenta.
-. MyISAM
Es un tipo de tabla directa, sencilla, más rápida y las transacciones son completamente uno a uno
-. Catálogo
crecerá en un orden lento, según las necesidades de la propia BD. (Listado de Usuarios, InnoDB)
-. Operación
se enfocan a lectura, mayor acceso a disco duro. (Préstamos de libros, MyISAM)
https://www.webreunidos.es/blog/myisam-vs-innodb/
Hola, consulta los tipos de tablas más comunes desde el punto de vista del diseño son:
TABLAS DE CATÁLOGO (MyISAM)
TABLAS DE OPERACIÓN (InnoDB)
esto es asi? porque en una pregunta que me hicieron en el examen me da error…por favor verificar las respuesta…
Creo que el título de esta clase está mal
Características de MyISAM:
Se establece por defecto cuando se crea una tabla, salvo que se indique lo contrario.
Soporta transacciones.
Realizar bloqueo de registros.
Soporta un gran número de consultas SQL, lo que se refleja en una velocidad de carga muy rápida para nuestra web.
Como desventaja, señalamos que no realiza bloqueo de tablas, esto puede ser un problema si como se ha mencionado anteriormente hay un acceso simultáneo al mantenimiento de registros por parte de varios usuarios.
Características de InnoDB
Bloqueo de registros. Importante para accesos múltiples al mantenimiento de tablas, es decir, ejecuciones de sentencias tipo INSERT o UPTATE, éstas ejecuciones tienen una velocidad optimizada.
Capacidad para soportar transacciones e integridad de datos, es decir previene el alta de datos no adecuados.
Aplica las características propias de ACID (Atomicity, Consistency, Isolation and Durability), consistentes en garantizar la integridad de las tablas.
Hay dos tipo de tablas en nuestra arquitectura que obedecerán a nuestra estrategia: 1.Catálogo esta usará InnoDB porque es lento su crecimiento y operación, por ejemplo: tabla client , 2.Operación está usará MyISAM esta será porque su operación es constante, ejemplo: operations
####Motores de base de datos
Los motores de base datos más conocidos son Innodb y Myissam, entre ambos existen ciertas diferencia notables que vale la pena mencionar para saber cual eligir.
Innodb considerado como un motor de base de datos transaccional conforme ACID con la capacidad de commit, rollback, recuperación de fallos.
Myissam es un motor de base de datos que trata tablas no transaccioneles lo cual lo hace más rapido en la lectura y escritura de datos.
#####Algunas ventajas y desventajas
Innodb
Myissam
si la velocidad de lectura y escritura es lo que importa ¿ por que las tablas del tutorial fueron creadas como INNODB? Quien me puede aclarar esa duda
En que caso usamos tablas de tipo MyISAM o InnoDB?
Otra alternativa de solución para acceder a la consola de MySQL es instalando WAMPSERVER 2.5, una vez instalado seleccionar la carpeta MySQL y listo les dejo el enlace:
2 Tipos de Tablas en MySQL :
- InnoDB .- Es una tabla de BD, mas nueva, mas robusta, mas recuperable en caso de que haya alguna falla en el disco duro pero es un poco mas lenta.
- MyISAM .- Es una tabla de BD muy directa, muy sencilla, muy rápida y las operaciones y transacciones son completamente uno a uno. La velocidad de lectura y escritura es mayor.
Hola a todos,
Les dejo unas Ventajas y Desventajas que encontré de cada MyISAM e InnoDB
Dos tipos de tablas por defecto en MySQL: •MyISAM: directa, sencilla, más rápida y las transacciones son completamente uno a uno: •InnoDB: nueva, recuperable en caso de falla de disco duro pero es un poco más lenta. En la vida real usamos las tablas con dos propósitos: •Catalogo: crecerá en un orden lento, según las necesidades de la propia BD. (Listado de Usuarios, InnoDB) •Operación: se enfocan a lectura, mayor acceso a disco duro. (Prestamos de libros, MyISAM).
La siguiente es una instrución para crear una tabla especificando que se usará el motor de almacenamiento InnoDB:
CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB;
A partir de esto (que en la instrucción CREATE TABLE se permita elegir el motor) entiendo que en una base de datos determinada es posible usar ambos motores.
Dos tipos bases de datos de tablas:
InnoDB: es una base de datos tipo tabla , más robusta, más recuperables en caso de que existe una falla en el disco duro, pero es un poco más lenta.
MyISAM: Es una tabla muy directa y sencilla muy rápida y las operaciones y transacciones es completamente una a una, la velocidad de lectura y escritura es mayor, esto afecta la estrategia.
queries copia a la consola
INNODB ES UNA TABLA MAS SEGURA, PERO MAS LENTA
MyISAM ES MAS RAPIDA PERO MENOS SEGURA
InnoDB
El bloqueo se hace por registro. Cuando se realiza una inserción o actualización del registro de una tabla de este tipo, únicamente se bloquea ese registro y no la tabla, como sucedía en MyISAM. Por lo que otros usuarios podrán hacer uso de manera simultánea de la base de datos.
No se, eso de que mis tablas transaccionales como la tabla PRESTAMO este en MyISAM no me convence, considerando que quien garantiza la integridad de la información cuando se hace varios UPDATE,INSERT y DELETE es el INNODB.
MyISAM sera la elección adecuada si eres nuevo con MySQL y para aplicaciones webs simples o poco definidas, por poner ejemplos de aplicaciones que deberían utilizar MyISAM: CMS (content management systems), simples motores de búsqueda ó blogs.
(Ref: http://www.tufuncion.com/mysql-innodb-myisam)
Hola ! Luego de la instalación, quede con el prompt en MySQL JS >
Como continuo para poder comenzar a manipular una DB?
Mi primera ejecucion
</
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
±-------------------+
6 rows in set (0.01 sec)
mysql> use sakila;
Database changed
mysql> show tables;
±---------------------------+
| Tables_in_sakila |
±---------------------------+
| actor |
| actor_info |
| address |
| category |
| city |
| country |
| customer |
| customer_list |
| film |
| film_actor |
| film_category |
| film_list |
| film_text |
| inventory |
| language |
| nicer_but_slower_film_list |
| payment |
| rental |
| sales_by_film_category |
| sales_by_store |
| staff |
| staff_list |
| store |
±---------------------------+
23 rows in set (0.01 sec)
mysql> select database();
±-----------+
| database() |
±-----------+
| sakila |
±-----------+
1 row in set (0.00 sec)``>
Muy interesante la parte de las tablas.
InnoDB y MyISAM: El ying yang de MySQL
Los tipos de tablas más comunes desde el punto de vista del diseño son:
TABLAS DE CATÁLOGO (MyISAM)
TABLAS DE OPERACIÓN (InnoDB)
Al instalar mysql me da un error 1042 y no me deja iniciar el servidor
Estrategia para saber cuál tabla será MyISAM o InnoDB
InnoDB
MyISAM
InnoDB: tipo de tabla de base de datos, más robusta, más recuperable ante fallo, pero más lenta.
Dos tipos de tablas: Tabla de catálogo y tabla de operación.
Les dejo el enlace donde pueden ver los dos tipos de tablas MySQL
https://platzi.com/tutoriales/1272-sql-mysql/4484-innodb-y-myisam-el-ying-yang-de-mysql/
No sé si el profe se equivoco, pero si es así pues cualquiera lo puede hacer, dejo un gran post de @facmartoni de platzi, donde podemos ver en que casos usar InnoDB y MyIsam.
Al diseñar una BD es importante saber que existen 2 principales tablas (innoDB y Myisam) que provee MySQL por defecto, innoDB es una tabla de BD màs nueva y robusta, màs recuperable en caso de una falla en disco duro, pero es un poco màs lenta, Myisam es una tabla muy directa y sencilla y muy ràpida y las transacciones son completamente uno a uno, la velocidad de lectura y escritura es mayor.
Poderoso
seguimos aprendiendo
Estrategia,
La tabla catalogo, las que crecen lento, tenerlas en InnoDB.
Las tablas que crecen mucho, y con acceso frecuente al disco duro, serán de tipo MyISAM.
“La velocidad de lectura y escritura es lo que importa”
SENTENCIA CREATE TABLE
La sentencia CREATE TABLE es utilizada para crear una tabla en una base de datos.
Las tablas se organizan en filas y columnas; y cada tabla debe tener un nombre.
SINTAXIS PARA LA SENTENCIA CREATE TABLE
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
Los parámetros “column_name” especifican los nombres de las columnas de las tablas.
Los parámetros “data_type” especifican que tipo de datos puede haber en esa columna (ej. varchar, integer, decimal, date, etc.).
El parámetro “size” especifica la longitud máxima de la columna de la tabla.
Ejemplo de la sentencia SQL CREATE TABLE:
Ahora vamos a crear en el esquema “eli”, una tabla llamada “publisher”, que contiene cuatro columnas; idpublisher, name, address, and phone.
En el MySQL Workbench escribimos la instrucción CREATE TABLE:
InnoDB y MyISAM
En este capitulo difiero un poco con el comentario de la utilización de MyISAM y InnoDB, en una tabla altamente transaccional es mejor usar InnoBD ya que es muy rápida para aceptar inserciones al contrario de MyISAM para las de tipo catálogo, pero si me ponen a escoger me voy por InnoDB como estándar ya que a futuro puedo hacer replicaciones y más robustas ante fallos.
Como que todo se me va aclarando D;
Vaya son conceptos que no sabía.
Aquí les dejo uin link para que si tienen una duda con los comandos, la vean
https://desarrolloweb.com/articulos/2408.php
Hola, tengo tarea en la Uni 😄
Acá les dejo el link de la documentación de MYSQL si saben inglés pueden pasar a mirarlo. Está buenisimo, explica todo muy claro CON EJEMPLOS!!
(https://dev.mysql.com/doc/refman/8.0/en/tutorial.html)
No se desconcentraron con el libro detras de Alberto, like si eres fan de Game of Thrones
MyISAM orientado a transacciones y ahorro de recursos.
InnoDB orientado a catalogo de datos, es mas robusta pero mas lenta para transacciones.
Gracias !!
Estimado prof. Alcocer. Tengo una duda conceptual en cuanto a las entidades y relaciones en MySQL. Por ejemplo en la tabla books y la tabla authors, veo que coloca dentro de tabla books el authors_id que seria el vinculo o la relacion con authors.** No deberia existir una tabla enlace (relacion), que se llamara por ejemplo writers, entre books y authors que tuviese solamente los campos claves authors_id y books_id en una relacion muchos a muchos??** Gracias
hola, alguien me podría decir como se limpia pantalla?
Tipos principales de tablas: 1) MyISAM 2) InnoDB
buenas clases
EXCELENTE CURSO
¿eres dislexico? oy bientam
Super importante el tipo de almacenamiento de las tablas. Desconocía por completo este tema.
Muy buena clase.
El comando CREATE TABLE se utiliza para crear una tabla llamada nom_sql con los campos especificados al pasar una o más definicion_columna
Buenas, tengo una duda serian tipos de tablas o tipos de motor de almacenamiento cuando hablamos de InnoDB y MyISAM?.
Wow, siempre usaba InnoDB en todas las tablas, ahora entiendo porque va lento en algunas oportunidades
Genial el dato de los motores de bases de datos MyIsam y InnoDB
¿Cuáles son los tipos de tablas?
Que es un Índice, una llave primaria y una llave foránea.
Siempre aprendiendo.
Una cosa importante a la hora de diseñar nuestra BD es saber que existen dos principales tipos de tablas propietarias (Existen más):
Aprendiendo nuevas cosas
no he podido abrir sql desde mi terminal en Mac ayuda¡
Tipos de tablas:
Entiendo que el InnoDB superan a las MyISAM, y están siendo más usadas en la actualidad.
Si tienen problemas para iniciar mysql desde la terminal con mac. Les recomiendo mucho este video: https://www.youtube.com/watch?v=TPEnVbMBgsM
Existen dos tipos de tablas innoDB, myisamDB
Existen dos tipos de estrategia, tabla catalogo, y tabla operación, Catalogo crece orden lento por lo que es innoDB Operaciones crece rápido por lo que es myisamDB
Carácteristicas InnoDB
MyISAM: Sencilla y rapida.
Carácteristicas MyISAM
Resumen
Debemos empezar por crear las tablas que necesitamos.
Principales tipos de tablas:
As of MySQL Version 3.23. 6, you can choose between three basic table formats ( ISAM , HEAP and MyISAM . Newer MySQL may support additional table type ( BDB , or InnoDB ), depending on how you compile it.
Chicos! quienes tengan dudas de como estar a la par del profe con windows y en consola, pueden usar este video: https://www.youtube.com/watch?v=UIz8sO3yefg&t=327s
a mi me sircio muchisimo, pero tienen que instalar wampp, suerte! Sigamos aprendiendo :3
Tabla de catalogo => crece a un orden lento
Tabla de operación => crece de manera rapida
Perfecto saber este tipo de información ya que uno cuando es jr nos daba igual en que BD montabas las tablas.
Gracias profesor, bien explicado
Tipos de tablas de bases de datos que tiene my sql.
**INNO DB: **
Nueva en cuanto a temporalidad de creación.
Robusta en cuanto a recuperación de tablas.
Mas lenta al acceso de datos.
Para tablas que crecen de manera más lenta hay que
ponerla en INNODB.
**MY ISAM: **
Mas rápida en la lectura y escritura de datos.
Para la tablas de datos de mayor crecimiento más rápido.
++ InnoDB++
El bloqueo se hace por registro. Cuando se realiza una inserción o actualización del registro de una tabla de este tipo, únicamente se bloquea ese registro y no la tabla, como sucedía en MyISAM. Por lo que otros usuarios podrán hacer uso de manera simultánea de la base de datos.
También hace control de transacciones, para entenderlo imaginemos la tabla de clientes de un banco, en el que se transfiere dinero de un cliente a otro, para ello se deben completar dos pasos:
1. La cantidad debe sumarse en la cuenta de destino
2. Restarse en la de origen.
En caso de interrupción de la energía del servidor, no podría quedarse a medias el proceso ya que la transacción (los dos pasos) deben cumplirse. Por lo tanto la transacción o se completa o no.
++ MyISAM++
Es la evolución de ISAM, mejora la velocidad y la optimización del espacio. Además, es el tipo predeterminado de tablas que utiliza MySQL. En el caso de que intentes crear otro tipo específico de tablas (y en caso de que MySQL no pueda crearlas), MySQL creará este tipo de tablas.
Otra característica, es que si realizas una inserción o actualización de un registro de la tabla, MySQL bloquea la tabla hasta que se complete la tarea. Por lo que nadie más podrá hacer actualizaciones o inserciones durante ese tiempo.
Me iba a quedar pegado en muchas cosas solo porque no se explicaron cosas que se utilizan de una forma en mac y de otra en windows
El único comentario que tengo hasta ahora, es que el curso no parece estar pensado para gente que apenas comienza en SQL, si no que ya deberían tener cierto conocimiento previo. Es bueno, porque puedes ir más rápido, pero a la vez es contraproducente porque no le da chance a los nuevos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?