PostgreSQL

Cómo utilizar vistas materializadas de PostgreSQL

Cómo utilizar vistas materializadas de PostgreSQL

Las vistas en PostgreSQL son tablas gráficas que muestran datos de las tablas correspondientes. Las vistas comunes también se pueden modificar. PostgreSQL lleva el concepto de vistas a la siguiente etapa al permitir que las vistas almacenen información materialmente, lo que se conoce como vistas materializadas. Una vista materializada conserva el resultado de una consulta complicada y que requiere mucho tiempo, lo que le permite consultar los resultados rápidamente en cualquier momento. Los puntos de vista materializados se utilizan con frecuencia en almacenes de datos y aplicaciones de inteligencia empresarial porque son útiles en situaciones que requieren un acceso rápido a los datos.

Por qué utilizar vistas materializadas?

Si el comando de vista es demasiado lento para usted, es posible que prefiera usar una vista materializada. Las vistas materializadas tienen mucha versatilidad al permitirle retener una representación materialmente en la base de datos con tiempos de acceso más cortos. Suponga que debe crear una consulta de base de datos para unir algunas tablas, eliminar filas de la colección unida y ordenar las tablas de varias maneras. Esta podría ser una consulta complicada y lenta, y sin vistas materializadas, terminará usando una vista materializada para abordar este dilema. Este artículo le enseña cómo usar vistas materializadas en PostgreSQL.

Sintaxis

>> CREAR VISTA MATERIALIZADA view_name COMO consulta CON [NO] DATOS;

La explicación de esta vista general es la siguiente:

Cómo utilizar vistas materializadas

Inicie su shell de línea de comandos de PostgreSQL para comenzar a trabajar en vistas materializadas.

Proporcione el nombre del servidor, la base de datos en la que desea trabajar, el número de puerto y el nombre de usuario para comenzar a usar el shell de comandos. Deje estos espacios vacíos si desea utilizar el sistema predeterminado.

Ejemplo 1: vista simple

Para comprender la vista materializada, primero debe comprender las vistas simples. Entonces, cree la nueva tabla, 'Estudiante', usando el comando CREAR TABLA, como se adjunta.

>> CREAR TABLA Estudiante (sid serial PRIMARY KEY, sname VARCHAR (100) NOT NULL, age VARCHAR (100) NOT NULL);

Después de eso, inserte datos en él usando la consulta INSERT.

Obtenga los registros de la tabla 'Estudiante' utilizando la instrucción SELECT para la vista simple.

>> SELECCIONAR * DE Estudiante;

Ejemplo 2: Vista materializada simple

Ahora es el momento de cubrir la vista materializada. Usaremos la tabla 'Estudiante' para crear una vista materializada. Crearemos una vista materializada llamada 'std_view' usando el comando 'CREAR VISTA MATERIALIZADA'. En esta vista, obtendremos el campo de nombre del estudiante 'sname' de la tabla 'Student', agrupado y ordenado en orden ascendente en la columna 'sname'.

>> CREAR VISTA MATERIALIZADA std_view COMO SELECT sname FROM Student GROUP BY sname ORDER BY sname;

Ahora, usando la consulta SELECT para ejecutar la vista, devolveremos los nombres de los estudiantes en la columna 'sname' de la tabla 'Student'.

>> SELECCIONAR * DE std_view;

Ejemplo 3: Vista materializada mediante la cláusula WHERE

Ahora, crearemos una vista materializada usando la cláusula WHERE. Considere la siguiente tabla 'Estudiante' con algunos cambios en sus valores.

Luego, crearemos una vista materializada llamada 'teststd' usando la consulta 'CREAR VISTA MATERIALIZADA'. Seleccionaremos los registros de la tabla 'Estudiante' donde el valor de la columna 'edad' sea mayor que '25' usando la cláusula WHERE. La consulta funciona correctamente, como se ve en la imagen.

>> CREAR VISTA MATERIALIZADA teststd COMO SELECCIONAR sid, sname, age FROM Student WHERE age> '25';

Finalmente, ejecutaremos la vista materializada que acabamos de crear usando el comando SELECT, como se muestra a continuación. Verá que devolverá todos los registros de la tabla 'Estudiante' en la que la columna 'edad' tiene un valor mayor que '25.'

>> SELECCIONAR * DE teststd;

Ejemplo 4: Actualizar vista materializada usando la cláusula SIN DATOS

En este ejemplo, crearemos una vista materializada, en la que usaremos la cláusula WITH NO DATA para actualizar la vista. Suponga que la siguiente tabla 'Estudiante' con algunas alteraciones en sus valores.

Ahora crearemos la vista 'teststd' materializada. Esta vista seleccionará los registros de la tabla 'estudiante' en la que la edad de los estudiantes es menor de '40.'Los registros obtenidos se agruparán y ordenarán de acuerdo con el orden ascendente en la columna' sid '. Al finalizar la consulta usaremos la cláusula WITH NO DATA para indicar que la consulta no guardará ninguna información en una vista materializada. La vista que se muestra a continuación debería realizar estas acciones con éxito.

>> CREAR VISTA MATERIALIZADA teststd COMO SELECT sid, sname, age FROM Student WHERE age < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Cuando agrega la cláusula 'SIN DATOS' a una vista materializada, esto crea una en blanco. Esta vista materializada no es consultable. Como puede ver en la siguiente imagen, no está recuperando los registros en la vista recién creada.

La instrucción REFRESH MATERIALIZED VIEW se utiliza para importar los datos en una vista materializada. Complete la vista materializada ejecutando la siguiente consulta REFRESH MATERIALIZED VIEW en el shell. Como puede ver, esta consulta ha funcionado eficazmente.

>> ACTUALIZAR VISTA MATERIALIZADA teststd;

Nuevamente, obtenga los registros de la vista materializada 'teststd' usando la instrucción SELECT en el shell. Esta vez, la consulta SELECT funciona correctamente porque la instrucción 'REFRESH' ha cargado contenido en la vista materializada.

Ejemplo 5: Vista materializada de caída

El siguiente comando eliminará una vista materializada.

>> DROP MATERIALIZED VIEW std_view;

Conclusión

Este artículo le mostró cómo usar vistas materializadas a través de la cláusula WHERE y las consultas REFRESH en el shell de la línea de comandos.

Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...
Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...