ScholarGate
Asistente

Métodos de indexación y acceso

Los índices y los métodos de acceso son las estructuras de datos auxiliares —principalmente árboles B+ e índices hash— que permiten a una base de datos localizar tuplas coincidentes sin escanear una tabla completa, proporcionando las rutas de acceso rápidas en las que se basa el optimizador.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un índice es una estructura de datos auxiliar sobre uno o más atributos de una relación que mapea valores clave a las ubicaciones de las tuplas coincidentes, permitiendo la recuperación en un tiempo sublineal con respecto al tamaño de la tabla; un método de acceso es el mecanismo que utiliza una consulta para leer datos, como un escaneo completo o un escaneo de índice.

Scope

Este tema abarca las estructuras y conceptos detrás de las rutas de acceso a los datos: la distinción entre índices agrupados y no agrupados, primarios y secundarios; el árbol B+ como el índice ordenado principal que soporta búsquedas de igualdad y de rango; los índices basados en hash para búsquedas de igualdad; y el papel de los índices en la selección, la unión y la evitación de la ordenación. Se trata cómo la elección del índice afecta el costo de la consulta y la sobrecarga de actualización. Excluye la selección general del plan del optimizador basado en costos, que es un tema aparte.

Core questions

  • ¿Cómo soporta un árbol B+ de manera eficiente tanto las consultas de igualdad como las de rango?
  • ¿Cuál es la diferencia entre índices agrupados y no agrupados, primarios y secundarios?
  • ¿Cuándo es preferible un índice hash a un índice de árbol?
  • ¿Cómo aceleran los índices las selecciones, las uniones y la recuperación ordenada?
  • ¿Cuál es el costo de mantener los índices bajo inserciones, actualizaciones y eliminaciones?

Key concepts

  • índice de árbol B+
  • índice hash
  • índice agrupado versus no agrupado
  • índices primarios y secundarios
  • índices densos y dispersos
  • búsqueda de rango y de igualdad
  • hashing extensible y lineal
  • costo de mantenimiento del índice

Key theories

Índices de árbol B+
El árbol B+ es un árbol de búsqueda equilibrado y de alto factor de ramificación que almacena claves en orden ascendente con todas las referencias de datos en las hojas; soporta consultas de igualdad y de rango y escaneos ordenados con E/S logarítmica y se mantiene equilibrado bajo inserciones y eliminaciones.
Índices agrupados versus no agrupados
Un índice agrupado mantiene las filas de la tabla físicamente ordenadas por la clave del índice, lo que hace que los escaneos de rango sean muy eficientes, mientras que un índice no agrupado (secundario) apunta a un archivo no ordenado, por lo que la recuperación de muchas filas coincidentes puede costar una E/S por fila.
Índices hash
Los índices basados en hash mapean claves a cubos para búsquedas de igualdad en tiempo constante esperado, pero no soportan consultas de rango; los esquemas dinámicos como el hashing extensible y lineal les permiten crecer de manera gradual con los datos.

Clinical relevance

La indexación es la palanca práctica más común para el rendimiento de las bases de datos: elegir los índices correctos puede convertir los escaneos de tabla completa en búsquedas de milisegundos para consultas transaccionales y analíticas, mientras que la sobreindexación ralentiza las actualizaciones, por lo que el diseño de índices es una decisión recurrente en la operación de sistemas reales.

History

Bayer y McCreight introdujeron el árbol B en 1972 para mantener grandes índices ordenados en disco; la variante del árbol B+, que mantiene todos los datos en las hojas, se convirtió en el índice de base de datos estándar, como se revisó en el 'Ubiquitous B-tree' de Comer de 1979. Los métodos de acceso basados en hash y los esquemas de hashing dinámico se desarrollaron en paralelo, y ambas familias siguen siendo fundamentales para cada motor relacional.

Key figures

  • Rudolf Bayer
  • Edward McCreight
  • Douglas Comer

Related topics

Seminal works

  • bayer1972
  • comer1979
  • ramakrishnan2003

Frequently asked questions

¿Por qué se utilizan árboles B+ en lugar de árboles de búsqueda binaria en las bases de datos?
Las bases de datos almacenan datos en disco, donde el costo está dominado por el número de lecturas de página. Los árboles B+ tienen un alto factor de ramificación, por lo que cada nodo llena una página de disco y el árbol es muy poco profundo, requiriendo solo unas pocas operaciones de E/S para alcanzar cualquier registro. Un árbol binario sería mucho más profundo e incurriría en muchos más accesos a disco.
¿Cuándo debo usar un índice hash en lugar de un árbol B+?
Utilice un índice hash cuando solo necesite búsquedas de igualdad (por ejemplo, encontrar la fila con un ID dado) y desee un acceso en tiempo constante esperado. Utilice un árbol B+ cuando también necesite consultas de rango, escaneos ordenados o coincidencia de prefijos, ya que los índices hash no conservan el orden de las claves y no pueden responder a las condiciones de rango de manera eficiente.

Methods for this concept

Related concepts