2010-10-31 8 views
6

He leído en línea por un tiempo que el uso de índices realmente acelera las consultas de su base de datos.¿Qué son los índices en el contexto de una base de datos?

Mi pregunta es ¿qué son los índices? ¿Por qué aceleran las consultas?

+1

http://en.wikipedia.org/wiki/Index_(database) - información más detallada – Kel

+0

Mi opinión sobre los índices o índices es que se utilizan para ubicar fácilmente los datos en la base de datos y permite que se ordenen los datos. –

Respuesta

5

En términos simples, proporciona una manera de encontrar datos de manera eficiente.

Tomando una guía telefónica, siempre es "apellido, nombre" para que pueda buscar a alguien. Imagínese si la compañía telefónica acaba de agregar nuevos números al final de la lista sin ningún orden: tendría que escanear millones de entradas una por una para encontrar "Smith, John".

Bueno, lo mismo se aplica a una tabla de base de datos. Una tabla sin un índice (simplemente) se denomina "montón" porque sus datos son literalmente una pila de datos desordenados. Si tengo un millón de filas, tengo que buscar en cada fila para encontrar lo que quiero.

Por supuesto, es más complejo que eso, pero espero que esto capte la esencia.

Lo mismo se aplica en cualquier lugar: nombres de las calles en una guía AZ son siempre alfabético, las entradas en su estado de cuenta están siempre en orden de fecha

+0

Entonces, ¿esto significa que si agrego un índice a una columna "Nombre" en la tabla "Persona", eso significa que los registros en esa tabla serán ordenados por la columna "Nombre"? ¿Qué pasaría si dos columnas en la misma tabla tienen índices? –

+0

@Sergio Tapia: cada índice se ordena lógicamente para permitir que se encuentren los valores. Así es como tiene múltiples índices: cada uno se ordena lógicamente por separado de sus datos reales. Esto ignora los índices agrupados frente a los no agrupados, que son implementaciones físicas. Es suficiente considerar cada índice ordenado lógicamente por simplicidad. Una tabla no es una guía telefónica impresa, por ejemplo, es una estructura en disco que no es realmente legible por humanos ... de ahí el bit "lógico" que he mencionado – gbn

1

Un índice es una copia de (una parte de) una tabla, que se vuelve más pequeña para mantener en la memoria que toda la tabla, lo que acelera las operaciones de lectura.

1

Los índices son una cosa compleja, algunos puntos de la bala:

  • Índices , al igual que en un libro, cree un puntero a los datos.
  • Los índices necesitan mantenimiento, se fragmentan con el tiempo.
  • cabeza a los declaraciones crear y actualizar como el índice debe ser actualizada cuando los datos cambia
  • Se utiliza principalmente en la aceleración de recuperación de datos

Hay diferentes tipos de índices, y son muy específico para cada implementación. Básicamente, no existe una ciencia exacta para crear índices, y son cruciales para una aplicación.

IMO, uno de los mejores articles en el índice de principiante, en realidad conjunto de artículos. Requiere una cuenta, pero gratuita y un gran recurso de información SQL.

1

¿Alguna vez ha buscado el contenido de un libro usando su índice? Normalmente ve la página de índice para ver el capítulo que necesita está presente en cada página y luego directamente a esa página, en lugar de buscar en todas las páginas.

Eso es bastante similar a cómo funcionan los índices en la tabla; dependiendo de qué columna (s) filtra la consulta, el índice de esa (s) columna (s) se escanea y da la ubicación de las filas correspondientes en la memoria física real . Esto es mucho más rápido que buscar todas las filas individualmente. También los índices se ordenan normalmente (mientras que las filas reales pueden no serlo) lo que permite que se apliquen mejores algoritmos de búsqueda como el escaneo de búsqueda binaria.

Cuestiones relacionadas