Desventajas del índice de la base de datos

Cuando una tabla no está indexada, es probable que la consulta no pueda discernir el orden de las filas de forma optimizada, por lo que tendrá que buscar en las filas de forma lineal. En otras palabras, la consulta tendrá que buscar a través de cada fila para encontrar las filas que coincidan con las condiciones. Como puede imaginar, esto puede llevar mucho tiempo. Buscar en cada fila no es muy eficiente.

La base de datos tendría que buscar en las 17 filas en el orden en que aparecen en la tabla, de arriba a abajo, de una en una. Así que para buscar todas las instancias potenciales del número 18 de company_id, la base de datos debe buscar en toda la tabla todas las apariciones de 18 en la columna company_id.

Esto sólo consumirá más y más tiempo a medida que aumente el tamaño de la tabla. A medida que aumenta la sofisticación de los datos, lo que podría ocurrir es que una tabla con mil millones de filas se uniera a otra tabla con mil millones de filas; la consulta ahora tiene que buscar en el doble de filas y cuesta el doble de tiempo.

Base de datos de índices compuestos

Cuando los datos se almacenan en dispositivos de almacenamiento basados en disco, se guardan como bloques de datos. Se accede a estos bloques en su totalidad, lo que los convierte en la operación atómica de acceso al disco. Los bloques de disco se estructuran de forma muy parecida a las listas enlazadas; ambos contienen una sección para los datos, un puntero a la ubicación del siguiente nodo (o bloque), y ambos no necesitan almacenarse de forma contigua.

Debido al hecho de que un número de registros sólo puede ordenarse en un campo, podemos afirmar que la búsqueda en un campo que no está ordenado requiere una búsqueda lineal que requiere (N+1)/2 accesos al bloque (en promedio), donde N es el número de bloques que abarca la tabla. Si ese campo es un campo no clave (es decir, no contiene entradas únicas), hay que buscar en todo el tablespace con N accesos de bloque.

Mientras que con un campo ordenado, se puede utilizar una búsqueda binaria, que tiene log2 N accesos de bloque. Además, como los datos están ordenados por un campo no clave, no es necesario buscar valores duplicados en el resto de la tabla, una vez que se encuentra un valor superior. Por lo tanto, el aumento de rendimiento es sustancial.

Indexación

Existen varias formas de mejorar el rendimiento de la actividad de la base de datos mediante el uso de índices. Sólo proporcionamos directrices generales que se aplican a la mayoría de las bases de datos. Consulte la documentación de su proveedor de bases de datos para obtener información más detallada.

Un índice se define mediante una expresión de campo que se especifica al crear el índice. Normalmente, la expresión de campo es un único nombre de campo, como EMP_ID. Un índice creado en el campo EMP_ID, por ejemplo, contiene una lista ordenada de los valores del ID del empleado en la tabla. Cada valor de la lista va acompañado de referencias a los registros que contienen ese valor.

Un controlador de base de datos puede utilizar los índices para encontrar registros rápidamente. Un índice en el campo EMP_ID, por ejemplo, reduce en gran medida el tiempo que el controlador dedica a buscar un valor de ID de empleado concreto. Considere la siguiente cláusula Where:

Sin un índice, el controlador debe buscar en toda la tabla de la base de datos para encontrar los registros que tienen un ID de empleado de E10001. Sin embargo, al utilizar un índice en el campo EMP_ID, el controlador puede encontrar rápidamente esos registros.

Indexación de Postgres

Un servicio de resúmenes es un servicio que proporciona resúmenes de publicaciones, a menudo sobre un tema o grupo de temas relacionados, normalmente mediante una suscripción. Un servicio de indexación es un servicio que asigna descriptores y otros tipos de puntos de acceso a los documentos. La palabra servicio de indexación se utiliza hoy en día sobre todo para los programas informáticos, pero también puede abarcar servicios que proporcionan índices de fondo de libro, índices de revistas y otros tipos de índices relacionados (véase índice (publicación). Un servicio de indexación y resumen es un servicio que proporciona acortamiento o resumen de documentos y asignación de descriptores para referenciar documentos.