4
Tipos de ficheros e índices que maneja el GDB MySQL Renato Paul, Figueroa Salinas nato_fi[email protected] Oscar Eduardo, Zenteno Linares [email protected] RESUMEN: Este documento presenta los tipos de ficheros e índices aceptados en el gestor MySQL, pues este gestor tiene varios archivos que le permite almacenar todo lo que ocurre en un determinado servidor de base de datos. Explicaremos brevemente cada tipo fichero: Archivos de registros de error, de consultas, binario, de consultas lentas y de mantenimiento. También se explicará sobre lo que es un índice (KEY o INDEX), que no es más que un grupo de datos que MySQL asocia con una o varias columnas de la tabla haciendo referencia. En este grupo de datos aparece la relación entre el contenido y el número de fila donde está ubicado. Cabe resaltar que los índices utilizados en MySQL sirven para agilizar las consultas en las tablas, evitando que este tenga que revisar todos los datos disponibles para devolver la consulta. Keywords: ÍNDICES, REGISTROS 1. INTRODUCCIÓN En los ficheros, los registros son implantados en el directorio de datos por defecto. Luego mediante un volcado de registros, podemos cerrar o reabrir estos archivos de registro. Incluso nos permite cambiar a un nuevo registro. Más adelante podremos explicar más detalladamente cada uno de los tipos de ficheros que nos permiten guardar todo lo ocurrido en un servidor de base de datos. Un punto importante también en las bases de datos es el tema de los índices, que son simplemente listas ordenadas que sirven para hacer referencia a una columna de una tabla y que nos permiten optimizar nuestras consultas; ejecutando las búsquedas de manera más eficiente y rápida. Al crear un índice, este nos permite acelerar la consulta y obtener la respuesta con mayor rapidez en su ejecución. Una vez entendido este concepto, podemos decir que una de las tareas más importantes del administrador de base de datos es crear los índices necesarios para realizar una optimización adecuada sin perjudicar el desempeño de las demás instrucciones por un exceso de índices. También se tiene uno de los grandes inconvenientes que se obtiene de la creación de muchos índices, y es que estos necesitan otros archivos y estos ocupan un espacio en el disco, que muchas veces es considerable. 2. TIPOS DE FICHEROS EN MYSQL [1]Existen cuatro tipos de registros con los que se trabaja en MySQL y los explicaremos brevemente a continuación: Registro de errores: Este tipo de fichero nos permite almacenar la información que nos indica cuando se ha iniciado, se ha parado y si ha ocurrido algún error critico en el servidor que se esté ejecutando. En MySQL 5.0 se puede especificar donde se quiere almacenar el registro de errores con la opción --log- [=file_name], si no se

MySQL Indices y Ficheros

Embed Size (px)

DESCRIPTION

jujui

Citation preview

Page 1: MySQL Indices y Ficheros

Tipos de ficheros e índices que maneja elGDB MySQL

Renato Paul, Figueroa [email protected]

Oscar Eduardo, Zenteno Linares [email protected]

RESUMEN: Este documento presenta los tipos de ficheros e índices aceptados en el gestor MySQL, pues este gestor tiene varios archivos que le permite almacenar todo lo que ocurre en un determinado servidor de base de datos. Explicaremosbrevemente cada tipo fichero: Archivos de registros de error, de consultas, binario, de consultas lentas y de mantenimiento. También se explicará sobre lo que es un índice (KEY o INDEX), que no es más que un grupo de datos que MySQL asocia con una o varias columnas de la tabla haciendo referencia. En este grupo de datos aparece la relación entre el contenido y el número de fila donde está ubicado. Cabe resaltar que los índices utilizadosen MySQL sirven para agilizar las consultas en las tablas, evitando que este tenga que revisar todos los datos disponiblespara devolver la consulta.

Keywords: ÍNDICES, REGISTROS

1. INTRODUCCIÓN

En los ficheros, los registros son implantados en el directorio de datos por defecto. Luego mediante un volcado de registros, podemoscerrar o reabrir estos archivos de registro. Incluso nos permite cambiar a un nuevo registro. Más adelante podremos explicar másdetalladamente cada uno de los tipos de ficheros que nos permiten guardar todo lo ocurrido en un servidor de base de datos.

Un punto importante también en las bases de datos es el tema de losíndices, que son simplemente listas ordenadas que sirven para hacerreferencia a una columna de una tabla y que nos permiten optimizarnuestras consultas; ejecutando las búsquedas de manera más eficiente y rápida. Al crear un índice, este nos permite acelerar la consulta y obtener la respuesta con mayor rapidez en su ejecución. Una vez entendido este concepto, podemos decir que una de las tareas más importantes del administrador de base de datos es crear los índices necesarios para realizar una optimización adecuada sin perjudicar el desempeño de las demás instrucciones por un exceso de índices. También se tiene uno de los grandes inconvenientes que se obtiene de la creación de muchos índices, y es que estos necesitan otros archivos y estos ocupan un espacio en el disco, que muchasveces es considerable.

2. TIPOS DE FICHEROS EN MYSQL

[1]Existen cuatro tipos de registros con los que se trabaja en MySQL y los explicaremos brevemente a continuación:

Registro de errores: Este tipo de fichero nos permite almacenar lainformación que nos indica cuando se ha iniciado, se ha parado y si ha ocurrido algún error critico en el servidor que se esté ejecutando.

En MySQL 5.0 se puede especificar donde se quiere almacenar elregistro de errores con la opción --log-[=file_name], si no se

proporciona ningún valor para file_name, MySql utiliza el nombre host_name.err y escribe el archivo en el directorio de datos.

Registro general de consultas: Este fichero registra las conexionesde clientes establecidas, y las sentencias que son ejecutadas. Este registro puede ser muy útil en caso se sospeche que exista un error en un cliente y se quiere saber exactamente que envió ese cliente al gestor.

[2] Este se inicia con –l [file_name] y en caso no se especifique elvalor de file_name, el nombre por defecto es host_name.log.

Registro binario: El registro binario se encarga de almacenar lassentencias que cambien datos, las sentencias se almacenan en forma de eventos que describen las modificaciones. También contiene información sobre cuanto se ha tardado cada sentencia en actualizar la base de datos.

[2] Cuando se introduce el siguiente comando –log-bin[=file_name]MySql escribe un archivo de registro el cual contiene todos los comandos SQL que actualizan datos. MySql también nos permite averiguar cuantos archivos de registro binarios han sido utilizadosmediante un archivo de índice de los registros binarios que contiene todos los nombres de todos los archivos de registro binario que se han utilizado.

Registro de consultas lentas: Este fichero registra que sentenciasfueron las que se tardaron más en ejecutarse, o las sentencias que no utilizaron índices. Estos ficheros nos ayudan a saber que es lo que tenemos que optimizar en una base de datos.

[2] Este se puede ver con el comando --log-slow-queries[=file_name] y este escribe un archivo de registro el cualcontiene todas las sentencias que tardaron mas en ejecutarse completamente. En caso de que no se especifique el valor de file_name, el nombre por defecto es el nombre de la maquina host con el sufijo –slow.log.

[2]Para hacer más simple el uso de este registro, se utiliza elcomando mysqldumpslow el cual nos ofrecerá un resumen de las sentencias que aparecen en el registro.

3. TIPOS DE ÍNDICES EN MYSQL

[3] Existen cinco tipos de índices en MySQL:

Primary Key: Este índice se ha creado para generar consultasespecialmente rápidas, debe ser único y no se admite elalmacenamiento de NULL. Se crean cuando creamos las tablas.

Index: Permite crear índices sobre una o varias columnas sobre partede una columna y se pueden duplicar.

Unique: Se base en lo que es index, pero no permite elalmacenamiento de valores iguales (duplicidad).

Page 2: MySQL Indices y Ficheros

Fulltext: Estos índices están diseñados para facilitar la búsquedasobre palabras clave en campos de texto de tablas grandes. Pueden utilizarse únicamente en Char, Varchar o Text.

Spatial: Son índices que solo pueden usarse sobre columnas de datos geométricas

4. CREACIÓN DE ÍNDICES

[4] Existen diferentes maneras de crear o modificar un índice, a continuación veremos la sintaxis de cómo crear los diferentes tipos de índices que existen:

Creación de un índice Primario

CREATE TABLE nombre_tabla (nombre_campo tipo_columna, INDEX [nombre_indice] (nombre_campol [nombre_campo2...));

Creación de un índice de FullText

CREATE FULLTEXT INDEX nombre_indice ON nombre_tabla (nombre_columna);

Creación de un índice de Unique

CREATE UNIQUE INDEX nombre_indice ON nombre_tabla (nombre_columna)

Creación de un Index

CREATE INDEX idx_apellidos ON usuarios (apellidos) ;

Creación de un índice de Spatial

CREATE SPATIAL INDEX nombre_indice ON nombre_tabla (nombre_columna) USING HASH;

[3] Para crear un índice primario en una tabla existente, se utiliza laclave ALTER, como veremos en la siguiente sintaxis:

ALTER TABLE nombre_tabla ADD PRIMARY KEY(nombre_campo1, nombre_campo2);

5. ELIMINACION O MODIFICACIÓN DE UNÍNDICE

[5] Cuando se desea eliminar o modificar un índice debido a que este deja de ser útil, se debe realizar un cambio sobre su estructura. Primero se deberá eliminar el índice y luego volver a crearlo con lanueva definición.

Para eliminar una clave primaria se utiliza la siguiente sintaxis.

ALTER TABLE nombre_tabla DROP PRIMARY KEY;

Y en el caso que se quiera eliminar un índice ordinario, exclusivo o de texto completo, primero debemos especificar el nombre delíndice, de la siguiente manera:

ALTER TABLE nombre_tabla DROP INDEXnombre_indice;

O de esta otra manera:

DROP INDEX nombre_indice ON nombre_tabla;

6. REFERENCIAS

[1] MySQL Documentation Library, MySQL 5.0 Reference Manual [online], Disponible en:https://downloads.mysql.com/docs/refman-5.0-es.a4.pdf

[2] Profesional Hosting, Los ficheros de registro de MySQL [online], Disponible en: http://www.profesionalhosting.com/soporte-en-linea/losficheros-de-registro-log-de-mysql-preg203.html

[3] Ian Gilfillan, “La Biblia MySQL”, Anaya Multimedia, 1ª edición, paginas 190-203, Julio 2003.

[4] Israel Parra Conejero, Índices en MySQL [online], Disponibleen: https://uno-de-piera.com/indices-en-mysql/

[5] Blueman, Índices y optimización de consultas en MySQL [online], Disponible en: https://www.dimensis.com/consejos-1-5.html