Clase :15/abril/2011
INDICES EN MYSQL
Estos indices nos sirven para poder agilizar las consultas en una base de datos o en si en las tablas,para crear el indice lo podemos hacerlo a la misma vez que creamos la tabla,usando la palabra INDEX seguido el nombre del indice que se quiere crear y sus respectivas columnas.
La sintaxis del indice como tal es:
- PRIMARY KEY (nombre_columna_1 [,nombre_columna2...]) UNIQUE INDEX nombre_indice (columna_indexada1 [,columna_indexada2 ...]) INDEX nombre_index (columna_indexada1 [,columna_indexada2...])
Cuando queremos crear el indice en una tabla ya creada se debe hacer así:
- ALTER TABLE nombre_tabla ADD INDEX nombre_indice (columna_indexada);
Si queremos eliminar un indice ya creado es así:
- ALTER TABLE nombre_tabla DROP INDEX nombre_indice
- Agilizar el acceso al contenido en una consulta por el campo referido.
- Restringir la inserción de datos en una tabla.
- No se puede eliminar un indice si es de tipo UNIQUE y existen registros.
- Cuando existan registros duplicados no se pueden crear indices tipo UNIQUE.
- Un indice para dos o mas campos es UNIQUE siempre y cuando los campos referenciados no sean duplicados.
- Dos indices no pueden tener el mismo nombre.
" Las llaves primarias siempre son indices"
"Los indices pueden apuntar 2 o mas campos en una misma tabla"
¿Para que sirve un indice?
Los indices nos permiten tener una mayor rapidez a la hora de la ejecución de las consultas de base de datos tipo SELECT....WHERE. Hay dos reglas para poder crear un indice y son :
¿Para que sirve un indice?
Los indices nos permiten tener una mayor rapidez a la hora de la ejecución de las consultas de base de datos tipo SELECT....WHERE. Hay dos reglas para poder crear un indice y son :
- Para poder crear el indice que deseas tiene que ser en la columna que vayas a usar con la clausura WHERE y no crearlo con aquellas columnas que utilicen SELECT.
- Es mejor indexar una columna que presente valores distintos.
La sintaxis de Indice:
CREATE INDEX [UNIQUE] <nombre_indice> ON <nombre_tabla> (campo1, campo2)
EJEMPLO CLASE:
CREATE TABLE departamentos
(clave INT AUTO_INCREMENT PRIMARY KEY COMMENT 'clave principal',
nombre CHAR(50) NOT NULL,
ubicacion CHAR(50) NULL DEFAULT 'principal'
);
INSERT INTO departamentos VALUES
('DEFAULT','cartera','principal'),
('DEFAULT','contabilidad','principal')
CREATE INDEX index_nombre
ON departamentos (nombre)
ALTER TABLE departamentos
DROP indx_nombre
CREATE UNIQUE INDEX indx_nombre
ON departamentos (nombre)
No hay comentarios:
Publicar un comentario