T5 - Indices

475
-1

Published on

Indices MySQL

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
475
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

T5 - Indices

  1. 1. Tema – 5 Índices
  2. 2. Índice 1. Introducción. 2. Tipos de índices en MySQL. 3. Creación de índices. 3.1. Ejemplos. 4. Consulta de los índices de una tabla. 5. Borrado de índices. 6. Habilitar / Deshabilitar índices 7. Uso correcto de índices. 2
  3. 3. 5.1. Introducción • Los índices son unos elementos que se utilizan en los SGBD para acceder más rápidamente a los datos. • ¿Cómo se accede a los datos en un SGBD? – Sin índices: se consultan todos los valores de todas las columnas. Mientras más filas tenga una tabla, más se tardará en realizar la consulta. – Con índices: si hay un índice en la columna en la que buscamos, no hace falta consultar todos los valores de todas las filas, la búsqueda es mucho más rápida. • El administrador de la BDD deberá crear los índices necesarios en las columnas que presenten accesos y consultas con más frecuencia. 3
  4. 4. 5.2. Tipos de índices en Mysql • MySQL presenta dos tipos de índices: – B-tree: los datos se organizan en forma de árbol. La búsqueda de un valor es más rápida que en una estructura lineal en que se tenga que buscar desde el principio hasta el final pasando por todos los valores. – Hash: acceden directamente a un valor concreto mediante una función que se llama función de hash. La búsqueda de un valor es muy rápida. 4
  5. 5. 5.2. Tipos de índices en Mysql • Los campos definidos como PRIMARY KEY o UNIQUE también se utilizan como índices. – Índice PRIMARY KEY: todos los valores que presenta este tipo de índice son únicos y no nulos. – Índice UNIQUE: todos los valores que presenta este tipo de índice son únicos. 5
  6. 6. 5.3. Creación de índices • La sintaxis para crear índices es la siguiente: – CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX nombre_índice [USING HASH | BTREE] ON nombre_tabla (columna1, columna2…); • UNIQUE: índice con valores no repetidos. • FULLTEXT: indexa los valores de una columna de tipo TEXT teniendo en cuenta el campo entero. • SPATIAL: para tipos de datos geométricos. • Es posible crear índices directamente en la creación de la tabla que lo contendrá. 6
  7. 7. 5.3.1. Ejemplos • Indexamos los empleados por su apellido: – CREATE INDEX Empl_Apellido ON Empleado (apellido); • Indexamos los clientes por el código de su representante y su propio código: – CREATE INDEX Cliente_Repr_Cli ON Cliente (codigoRepresentante, codigoCliente); • Creamos el índice sobre el nombre de los empleados en el momento de crear la tabla: – CREATE TABLE Empleado ( codigo int primary key, nombre varchar(25), apellido varchar(25), INDEX (nombre)); 7
  8. 8. 5.4. Consulta de los índices de una tabla • La sintaxis para saber los índices que tiene una tabla determinada es la siguiente: – SHOW indexes FROM nombre_tabla; 8
  9. 9. 5.5. Borrado de índices • La sintaxis para borrar índices es la siguiente: – DROP INDEX nombre_índice ON nombre_tabla; 9
  10. 10. 5.6. Habilitar / Deshabilitar índices • MySQL permite habilitar y deshabilitar índices de una tabla concreta. La sintaxis es la siguiente: – ALTER TABLE nombre_tabla DISABLE KEYS; //Deshabilitamos los índices de la tabla indicada – ALTER TABLE nombre_tabla ENABLE KEYS; //Habilitamos los índices de la tabla indicada 10
  11. 11. 5.7. Uso correcto de índices • Dado que los índices hacen que las búsquedas de valores sean más rápidas, podríamos estar tentados a crear índices en todas las columnas de nuestras tablas. Pero las operaciones de inserción, actualización y borrado de datos se ven ralentizadas con el uso de índices, ya que hay que reestructurar los datos de toda la tabla afectada. 11
  12. 12. 5.7. Uso correcto de índices • ¿Sobre qué campos crear índices? – Sobre los campos que más utilicemos en las cláusulas WHERE de nuestras consultas. – No obstante, no merece crear índices en columnas con un alto grado de valores repetidos. 12
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×