Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

11. indices en my sql

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Tablas en SQL Server
Tablas en SQL Server
Cargando en…3
×

Eche un vistazo a continuación

1 de 4 Anuncio
Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a 11. indices en my sql (20)

Anuncio

Más reciente (20)

11. indices en my sql

  1. 1. 1 11. ÍNDÍCES EN MYSQL Para facilitarlaobtenciónde informaciónde unatablase utilizan índices.El índice de unatabla desempeñalamismafunciónque el índice de unlibro: permite encontrar datos rápidamente; en el caso de las tablas, localiza registros. Una tabla se indexaporun campo(o varios).El índice es un tipo de archivo con 2 entradas: un dato (un valor de algún campo de la tabla) y un puntero. Un índice posibilitael accesodirectoyrápidohaciendomáseficientelasbúsquedas.Siníndice, se debe recorrer secuencialmente toda la tabla para encontrar un registro. El objetivo de un índice esacelerarla recuperaciónde información.Ladesventaja es que consume espacio en el disco. La indexación es una técnica que optimiza el acceso a los datos, mejora el rendimiento acelerando las consultas y otras operaciones. Es útil cuando la tabla contiene miles de registros. Los índices se usan para varias operaciones:  para buscar registros rápidamente.  para recuperar registros de otras tablas empleando "join". Es importante identificarel oloscampos porlos que sería útil crearun índice,aquelloscampos por los cuales se realizan operaciones de búsqueda con frecuencia. Hay distintos tipos de índices:  "primary key":esel que definimoscomoclave primaria.Losvalores indexados deben ser únicos y además no pueden ser nulos. MySQL le da el nombre "PRIMARY". Una tabla solamente puede tener una clave primaria.  "index": crea un índice común, los valores no necesariamente son únicos y aceptan valores "null".Podemosdarle unnombre,si nose lodamos,se coloca unopor defecto ("key" es sinónimo de "index"). Puede haber varios por tabla.  "unique": crea un índice para los cuales los valores deben ser únicos y diferentes, aparece un mensaje de error si intentamos agregar un registro con un valor ya existente. Permite valores nulos y pueden definirse varios por tabla. Podemos darle un nombre, si no se lo damos, se coloca uno por defecto. Todos los índices pueden ser multicolumna, es decir, pueden estar formados por más de 1 campo.
  2. 2. 2 Una tabla puede tenerhasta64 índices.Los nombresde índicesaceptan todos los caracteres y puedentenerunalongitudmáximade 64 caracteres. Pueden comenzar con un dígito, pero no pueden tener sólo dígitos. Una tabla puede ser indexada por campos de tipo numérico o de tipo carácter. También se puede indexar por un campo que contenga valores NULL, excepto los PRIMARY. Para ver los índices de una tabla podemos utilizar la cláusula SHOW: Hemosdichoque hay 4 tiposde índicesde losque conocemossolamentedos:laclave primaria que definimos al momentode crearuna tabla, lasclavesexternassi las hubiera y los campos a losque se laañadidola restricciónUNIQUE.El que faltaesel tipode índice común: se crea con "index",losvaloresnonecesariamentesonúnicosyaceptanvalores"null".Puede habervarios por tabla. Vamos a ver nuestra BD Neptuno y a la tabla Empleados, vamos a crear unas réplicas de Empleados con un índice en el campo cargo por el que creemos que haremos consultas frecuentemente por lo que indexar la tabla por ese campo sería útil. Podemos crear el índice:  En el momento de crear la tabla (no es una restricción o constraint, es una estructura de datos interna, ordenada, que usa el motor para optimizar y agilizar las consultas o actualizaciones sobre las tablas). Detrás de la definición de los campos colocamos "index" seguido del nombre que le daremos al índice y entre paréntesis el o los campos por los cuales se indexará dicho índice.
  3. 3. 3 Si mostramoslosíndicesde estatabla:  Después de crear la tabla mediante CREATE INDEX. Para borrar ese índice tenemos que hacer un ALTER TABLE DROP INDEX y el nombre del índice. Para crear índicespor múltiple camposse listanloscamposdentrode losparéntesisseparados con comas pero realmente no es lo más utilizado, piensa que esa situación se dará fundamentalmente en el PRIMARY KEY de las relaciones N:M y ya cada campo está indexado por separado, así que no es nada habitual un índice de más de un campo. En cuanto a la informaciónque devuelve laconsultaSHOWINDEXloscamposmás importantes y realmente los únicos que necesitamos de momento son:  La columna "Table" indica de qué tabla estamos visualizando los índices.
  4. 4. 4  La columna "Non_unique" indica si los valores son "no únicos"; para el índice creado por la clave primaria indica "false" (0), significa que SON únicos, no hay valores repetidosparaese campo(recuerde loaprendidosobre clave primaria); para el índice "idx_cargo" y "fk_jefe3" indica "true" (1), es decir, NO son únicos, hay valores repetidos.  La columna"Key_name"muestrael nombre del índice;parael campocorrespondiente a la clave primaria tomó el nombre "PRIMARY", "fk_jefe3" para la clave externa de jefes y el otro nombre es el que le dimos nosotros al definirlo (idx_cargo).  La columna"Column_name" muestra el nombre del campo por el que está ordenado el índice: "id" para el índice "PRIMARY", "jefe_id" para la clave externa de jefe y "cargo" para nuestro índice.  La columna"Null"indicasi permite valores nulos; el índice "PRIMARY" no los permite (NUNCA), el resto de índices en esta tabla si los permite (aparece YES). Si no debe permitirlos la definir el campo habría que indicar el NOT NULL. Vamosa ver el otrotipode índice que no hemos visto en un ejemplo, ÚNICO. Un índice único se crea con "unique",losvaloresdebenserúnicosydiferentes,aparece unmensajede error si intentamos agregar un registro con un valor ya existente. Permite valores nulos y pueden definirse varios por tabla.Podemosdarle unnombre,si no se lo damos, se coloca uno por defecto. Vamos a crear una tabla "libros" con un campo UNIQUE: La borramos y la volvemos a crear un índice sobre ese campo: Como puedes ver los índices por defecto admiten valores duplicados. Para crear un índice de tipo único debes añadir esa cláusula detrás del create:

×