Saltar al contenido

MySql tipos de datos e indices

Vamos a repasar los diferentes tipos de dato que podemos almacenar en una base de datos MySQL.

Índice

    Tipo de datos mysql

    Al crear una tabla la elección correcta de un formato de dato para cada columna de la tabla hará que nuestra BBDD tenga un rendimiento óptimo a medio largo plazo.

    Repasando la documentación oficial los tipos de datos se dividen en tres:

    tipo datos mysql numéricos

    Listado de cada uno de los tipos de dato numéricos en MySQL, su ocupación en disco y valores.

    • INT (INTEGER): Ocupación de 4 bytes con valores entre -2147483648 y 2147483647 o entre 0 y 4294967295. tomar encuenta que los valores negativos deben ser registrados con el signo de menos.
    • SMALLINT: Ocupación de 2 bytes con valores entre -32768 y 32767 o entre 0 y 65535.
    • TINYINT: Ocupación de 1 bytes con valores entre -128 y 127 o entre 0 y 255.
    • MEDIUMINT: Ocupación de 3 bytes con valores entre -8388608 y 8388607 o entre 0 y 16777215.
    • BIGINT: Ocupación de 8 bytes con valores entre -8388608 y 8388607 o entre 0 y 16777215.
    • DECIMAL (NUMERIC): Almacena los números de coma flotante como cadenas o string.
    • FLOAT (m,d): Almacena números de coma flotante, donde ‘m’ es el número de dígitos de la parte entera y ‘d’ el número de decimales.
    • DOUBLE (REAL): Almacena número de coma flotante con precisión doble. Igual que FLOAT, la diferencia es el rango de valores posibles despues del punto fijo.
    • BIT (BOOL, BOOLEAN): Número entero con valor 0 o 1.

    Tipos fecha con formato

    información de cada uno de los tipos de dato con formato fecha en MySQL, su ocupación en disco y valores.

    • DATE: Válido para almacenar una fecha con año, mes y día, su rango oscila entre  ‘1000-01-01′ y ‘9999-12-31′.
    • DATETIME: Almacena una fecha (año-mes-día) y una hora (horas-minutos-segundos), su rango oscila entre  ‘1000-01-01 00:00:00′ y ‘9999-12-31 23:59:59′.
    • TIME: Válido para almacenar una hora (horas-minutos-segundos). Su rango de horas oscila entre -838-59-59 y 838-59-59. El formato almacenado es ‘HH:MM:SS’.
    • TIMESTAMP: Almacena una fecha y hora UTC. El rango de valores oscila entre ‘1970-01-01 00:00:01′ y ‘2038-01-19 03:14:07′.
    • YEAR: Almacena un año dado con 2 o 4 dígitos de longitud, por defecto son 4. El rango de valores oscila entre 1901 y 2155 con 4 dígitos. Mientras que con 2 dígitos el rango es desde 1970 a 2069  (70-69).

    Diferentes tipos de dato con formato string

    Listado de cada uno de los tipos de dato con formato string en MySQL, su ocupación en disco y valores.

    • CHAR: Ocupación fija cuya longitud comprende de 1 a 255 caracteres.
    • VARCHAR: Ocupación variable cuya longitud comprende de 1 a 255 caracteres.
    • TINYBLOB: Una longitud máxima de 255 caracteres. Válido para objetos binarios como son un fichero de texto, imágenes, ficheros de audio o vídeo. No distingue entre minúculas y mayúsculas.
    • BLOB: Una longitud máxima de 65.535 caracteres. Válido para objetos binarios como son un fichero de texto, imágenes, ficheros de audio o vídeo. No distingue entre minúculas y mayúsculas.
    • MEDIUMBLOB: Una longitud máxima de 16.777.215 caracteres. Válido para objetos binarios como son un fichero de texto, imágenes, ficheros de audio o vídeo. No distingue entre minúculas y mayúsculas.
    • LONGBLOB: Una longitud máxima de 4.294.967.298 caracteres. Válido para objetos binarios como son un fichero de texto, imágenes, ficheros de audio o vídeo. No distingue entre minúculas y mayúsculas.
    • SET: Almacena 0, uno o varios valores una lista con un máximo de 64 posibles valores.
    • ENUM: Igual que SET pero solo puede almacenar un valor.
    • TINYTEXT: Una longitud máxima de 255 caracteres. Sirve para almecenar texto plano sin formato. Distingue entre minúculas y mayúsculas.
    • TEXT:Una longitud máxima de 65.535 caracteres. Sirve para almecenar texto plano sin formato. Distingue entre minúculas y mayúsculas.
    • MEDIUMTEXT:Una longitud máxima de 16.777.215 caracteres. Sirve para almecenar texto plano sin formato. Distingue entre minúculas y mayúsculas.
    • LONGTEXT: Una longitud máxima de 4.294.967.298 caracteres. Sirve para almecenar texto plano sin formato. Distingue entre minúculas y mayúsculas.

    Qué son los índices en bases de datos en mysql

    Imagina que tiene todos los libros de una biblioteca, con un inventario de 30 mil libros ahora suponga también que los libros no están ordenados.

    Veamos una consulta como esta:

    SELECT * FROM libros WHERE titulo=»El oro y la paz»

    MySQL debe leer  todos los registros de la tabla «libros» y efectuar una comparación entre el campo «titulo» y la cadena de caracteres «El oro y la paz»  para encontrar alguna coincidencia. entonces mientras mayor el numero de registros, dicha consulta irá requiriendo un mayor tiempo de respuesta.

    Los índices de base de datos son muy similares a un diccionario o el menu de un restaurante. Como administradores de una base de datos decidimos crear un índice respecto a una columna. Para  crear un índice de términos y conceptos importantes

    Creando índices en MySQL

    Usando el ejemplo inicial, para que la consulta de los libros de una biblioteca por el titulo se ejecutara mas rapido si creamos el indice en la tabla libros con el siguiente comando alter el cual utilizamos para modificar tablas y otros objetos

    ALTER TABLE personas ADD INDEX (apellido)

    De esta forma hemos visto los tipos de datos comunes de mysql ademas de como crear indices en las tablas de mysql. favor indicarnos si esto fue de ayuda para ti y comentando debajo.

    Gracias,

    Hasta la proxima :D!!