jueves, 2 de mayo de 2013
Creacion de Indices en Mysql y Oracle
Creación de Índices
.
Un índice es una estructura interna que el sistema puede usar para encontrar uno o más registros en una tabla de forma rápida. En efecto, un índice de base de datos es, conceptualmente, similar a un índice encontrado al final de cualquier libro de texto. De la misma forma que el lector de un libro acudiría a un índice para determinar en qué páginas se encuentra un determinado tema, un sistema de base de datos leerá un índice para determinar las posiciones de registros seleccionados por una consulta SQL. En otras palabras, la presencia de un índice puede ayudar al sistema a procesar algunas consultas de un modo más eficiente.
Un índice de base de datos se crea para una columna o grupo de columnas. La figura siguiente muestra un índice (XCNOMBRE) basado en la columna CNOMBRE de la tabla CURSO. Observemos que el índice, a diferencia de la tabla CURSO, representa valores CNOMBRE en orden. Además, el índice es pequeño en relación con el tamaño de la tabla. Por lo tanto, es, probablemente, más fácil que el sistema busque el índice para localizar un registro con un valor CNOMBRE dado, a que explore toda la tabla en busca de ese valor. Por ejemplo, el índice XCNOMBRE podría ser muy útil al sistema cuando ejecute la siguiente sentencia SELECT.
Tenemos tres tipos de índices.
El primero corresponde a las claves primarias, que como vimos, también se pueden crear en la parte de definición de columnas. La sintaxis para definir claves primarias es:
definición_columnas | PRIMARY KEY (index_nombre_col,...)
mysql> CREATE TABLE ciudad4(nombre CHAR(20) NOT NULL,
poblacion INT NULL DEFAULT 5000,
PRIMARY KEY (nombre));
Pero esta forma tiene más opciones, por ejemplo, entre los paréntesis podemos especificar varios nombres de columnas, para construir claves primarias compuestas por varias columnas:
mysql> CREATE TABLE mitabla1 (id1 CHAR(2) NOT NULL,
id2 CHAR(2) NOT NULL,
texto CHAR(30),
PRIMARY KEY (id1, id2));
El segundo tipo de índice permite definir índices sobre una columna, sobre varias, o sobre partes de columnas. Para definir estos índices se usan indistintamente las opciones KEY o INDEX.
mysql> CREATE TABLE mitabla2(id INT, nombre CHAR(19), INDEX (nombre));
O su equivalente:
mysql> CREATE TABLE mitabla3(id INT, nombre CHAR(19), KEY (nombre));
También podemos crear un índice sobre parte de una columna:
mysql> CREATE TABLE mitabla4(id INT, nombre CHAR(19), INDEX (nombre(4)));
Índices en Oracle.
Creacion de un índice sobre la taba CLIVARIOS utilizando las columnas NOMCLIENTE y DIRECCION:
CREATE INDEX IK_CLID on CLIVARIOS (NOMCLIENTE, DIRECCION));
Eliminacion de un índice: DROP INDEX nombre;
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario