Cómo crear índices en PostgreSQL

Cómo crear índices en PostgreSQL

Los índices son tablas de búsqueda especializadas utilizadas por los motores de búsqueda de datos de datos para acelerar los resultados de la consulta. Un índice es una referencia a la información en una tabla. Por ejemplo, si los nombres en un libro de contacto no están alfabetizados, tendría que bajar cada fila y buscar en cada nombre antes de llegar al número de teléfono específico que está buscando. Un índice acelera los comandos de selección y dónde frases, realizando la entrada de datos en los comandos actualizar e insertar. Independientemente de si los índices se insertan o eliminan, no hay impacto en la información contenida en la tabla. Los índices pueden ser especiales de la misma manera que la limitación única ayuda a evitar registros de réplicas en el campo o conjunto de campos para los que existe el índice.

Sintaxis general

La siguiente sintaxis general se usa para crear índices.

>> Crear índice index_name en table_name (column_name);

Para comenzar a trabajar en índices, abra el Pgadmin de PostgreSQL desde la barra de aplicaciones. Encontrará la opción 'Servidores' que se muestra a continuación. Haga clic con el botón derecho en esta opción y conéctela a la base de datos.

Como puede ver, la base de datos 'prueba' se enumera en la opción 'Bases de datos'. Si no tiene una, haga clic con el botón derecho en las bases de datos ", navegue a la opción 'Crear' y nombre la base de datos de acuerdo con sus preferencias.

Expanda la opción 'Schemas', y encontrará la opción 'Tablas' en la lista de. Si no tiene uno, haga clic con el botón derecho en él, navegue a 'Crear' y haga clic en la opción 'Tabla' para crear una nueva tabla. Dado que ya hemos creado la tabla 'EMP', puede verla en la lista.

Pruebe la consulta de selección en el editor de consultas para obtener los registros de la tabla 'EMP', como se muestra a continuación.

>> seleccionar * del público.orden órden de "id" asc;

Los siguientes datos estarán en la tabla 'EMP'.

Crear índices de columna de una sola columna

Expanda la tabla 'EMP' para encontrar varias categorías, E.gramo., Columnas, restricciones, índices, etc. Haga clic con el botón derecho en 'Índice,' navegue a la opción 'Crear' y haga clic en 'Índice' para crear un nuevo índice.

Construya un índice para la tabla 'EMP' dada, o pantalla eventuada, utilizando la ventana de diálogo de índice. Aquí, hay dos pestañas: 'General' y 'Definición.'En la pestaña' General ', inserte un título específico para el nuevo índice en el campo' Nombre '. Elija el'pacio de tabla 'bajo el cual se almacenará el nuevo índice utilizando la lista desplegable junto a' Tablepace.'Como en el área de' comentario ', haga comentarios de índice aquí. Para comenzar este proceso, navegue a la pestaña 'Definición'.

Aquí, especifique el 'método de acceso' seleccionando el tipo de índice. Después de eso, para crear su índice como 'único', hay varias otras opciones enumeradas allí. En el área de 'columnas', toque el signo '+' y agregue los nombres de la columna para usar para indexar. Como puede ver, hemos estado aplicando indexación solo a la columna 'Teléfono'. Para comenzar, seleccione la sección SQL.

La pestaña SQL muestra el comando SQL que ha sido creado por sus entradas a lo largo del diálogo de índice. Haga clic en el botón 'Guardar' para crear el índice.

Nuevamente, vaya a la opción 'Tablas' y navegue a la tabla 'Emp'. Actualice la opción de 'índices', y encontrará el índice 'index_on_phone' recién creado que figura en ella.

Ahora, ejecutaremos el comando SELECT SELECT para verificar los resultados de los índices con la cláusula WHERE. Esto dará como resultado la siguiente salida, lo que dice: 'SEQ escanear en EMP.'Puede preguntarse por qué sucedió esto mientras usa índices.

Razón: el planificador de Postgres puede decidir no tener un índice por varias razones. El estratega toma las mejores decisiones la mayor parte del tiempo, a pesar de que las razones no siempre están claras. Está bien si se usa una búsqueda de índice en algunas consultas, pero no en todo. Las entradas devueltas de cualquiera de la tabla pueden variar, dependiendo de los valores fijos devueltos por la consulta. Debido a que esto ocurre, un escaneo de secuencia es casi siempre más rápido que un escaneo índice, lo que indica que quizás el planificador de consulta fue correcto para determinar que el costo de ejecutar la consulta de esta manera se reduce.

Crear múltiples índices de columna

Para crear índices de columna múltiple, abra el shell de línea de comandos y considere la siguiente tabla 'estudiante' para comenzar a trabajar en índices con múltiples columnas.

>> seleccionar * del estudiante;

Escriba la siguiente consulta de índice Crear en ella. Esta consulta creará un índice llamado 'new_index' en las columnas 'sname' y 'edad' de la tabla 'estudiante'.

>> Crear índice new_index en el estudiante (sname, edad);

Ahora, enumeraremos las propiedades y atributos del índice 'new_index' recién creado usando el comando '\ d'. Como puede ver en la imagen, este es un índice de tipo btree que se aplicó a las columnas 'sname' y 'edad'.

>> \ d new_index;

Crear un índice único

Para construir un índice único, suponga la siguiente tabla 'EMP'.

>> seleccionar * de Emp;

Ejecute la consulta de índice Crear única en el shell, seguido del nombre del índice 'empind' en la columna 'Nombre' de la tabla 'EMP'. En la salida, puede ver que el índice único no se puede aplicar a una columna con valores duplicados de 'nombre'.

>> crear un índice único empind en EMP (nombre);

Asegúrese de aplicar el índice único solo a columnas que no contienen duplicados. Para la tabla 'EMP', puede suponer que solo la columna 'ID' contiene valores únicos. Entonces, le aplicaremos un índice único.

>> crear un índice único empind en EMP (id);

Los siguientes son los atributos del índice único.

>> \ d Empid;

Índice de caída

La declaración de caída se utiliza para eliminar un índice de una tabla.

>> Drop Index Empind;

Conclusión

Si bien los índices están diseñados para mejorar la eficiencia de las bases de datos, en algunos casos, no es posible usar un índice. Al usar un índice, se deben considerar las siguientes reglas:

  • Los índices no deben ser descartados para tablas pequeñas.
  • Tablas con muchas operaciones de actualización/actualización o adición/inserción de lotes a gran escala.
  • Para las columnas con un porcentaje sustancial de valores nulos, los índices no se pueden mezclar-
  • venta.
  • Se debe evitar la indexación con columnas manipuladas regularmente.