¿MySQL admite vistas materializadas??

¿MySQL admite vistas materializadas??
En el mundo moderno, la velocidad es clave. Al construir aplicaciones y software con una base de datos, necesitamos un acceso rápido a los datos en el tiempo más mínimo posible. Para eso, implementamos varias medidas de bases de datos, incluidas las vistas materializadas.

Sin embargo, a diferencia de PostgreSQL o Oracle Database, MySQL no admite de forma nativa las vistas materializadas, lo que puede ser una gran desventaja. Sin embargo, eso no es razón para dejar de usar MySQL porque es una gran base de datos para las principales aplicaciones.

En este tutorial, discutiremos rápidamente cuáles son las opiniones materializadas, cómo funcionan, casos en los que son aplicables y cómo implementar vistas materializadas en MySQL.

NOTA: Supongo que tienes conocimiento básico de MySQL antes de sumergirte en esta guía.

¿Qué son las vistas materializadas??

Las vistas materializadas son resultados precalculados de una consulta almacenada en una tabla. A diferencia de una vista MySQL estándar, una vista materializada no es una ventana en una tabla de base de datos; almacena datos reales.

Estos tipos de objetos son muy útiles cuando necesita acceso inmediato a los datos, y una consulta regular de MySQL tomaría tiempo para procesar. Un buen ejemplo son los casos con un conjunto de datos grande que requiere muchos cálculos.

Dado que las vistas materializadas contienen datos reales, requieren refrescante para reflejar los valores actualizados desde la misma consulta. El intervalo de actualización para una vista materializada depende del contenido almacenado y de qué tan rápido están cambiando los datos.

¿MySQL admite vistas materializadas??

La respuesta simple es no. En MySQL, no hay un solo comando que pueda ejecutar para obtener una vista materializada. Por ejemplo, no puede escribir el comando a continuación y obtener lo que necesita:

Mysql> Crear vista materializada ..

Afortunadamente, con algunos trucos y herramientas proporcionadas de forma nativa por MySQL, podemos implementar una visión materializada similar a una nativa proporcionada por PostgreSQL, Oracle y otros.

Cómo crear una vista materializada en MySQL

En esta sección, le mostraré una forma de implementar una vista materializada en MySQL.

NOTA: Aunque este método de taller ilustra una forma de crear una vista materializada en MySQL, no será perfecto en todas las bases de datos.

Supongamos que tenemos un esquema llamado (MV) que tiene una tabla llamada información, utilizada para almacenar la información de ventas como se muestra en las consultas a continuación:

Crear esquema MV;
Usar MV;
Crear información de la tabla (
ID int primaria clave auto_increment,
Seller_id int,
_ Fecha de fecha,
cantidad int
);
Insertar en información (Seller_id, _Date, cantidad) Valores (101, "2021-01-05", 200), (111, "2021-01-05", 600), (121, "2021-02-05", 1000);

Usando una tabla de ejemplo arriba, podemos crear una tabla materializada que almacene información de una consulta como la que se muestra a continuación:

Seleccione Seller_id, _Date, Sum (Cantidad * 12 * 8) como Total_amount de Info Where _Date < CURRENT_DATE ORDER BY seller_id;

La consulta puede no parecer efectiva, considerando el tamaño de la base de datos y la información almacenada en la tabla anterior porque se procesará muy rápido. Sin embargo, en una gran base de datos con mucha información, una consulta como la anterior podría tomar algún tiempo procesar.

En tal caso, podemos crear una vista materializada para almacenar la información de la consulta anterior, lo que nos permite acceder a la información más rápido simplemente seleccionándola desde la vista que no sea usar la consulta sin procesar cada vez.

Para crear una vista materializada, podemos crear una tabla con los resultados de la consulta anterior:

Crear tabla materializada_view (
Seleccione Seller_id, _Date, Sum (Cantidad * 12 * 8) como Total_amount de Info Where _Date < CURRENT_DATE ORDER BY seller_id
);

Cómo actualizar una vista materializada

Como ahora sabe, una vista materializada contiene datos reales; No es una instantánea de una mesa.

Eso significa que si se actualiza la tabla principal, los datos en la tabla de vista materializada necesitarán refrescarse.

Para actualizar una vista materializada, podemos usar el procedimiento que se muestra a continuación:

Delimitador $$
Crear procedimiento refresh_materialv (
Fuera dev int
)
COMENZAR
Tabla truncada materializada_view;
Insertar en Materialized_View
Seleccione Seller_id, _Date, Sum (Cantidad * 12 * 8) como Total_amount
De la información
Donde _Date seleccione * de materializado_view;
+-----------+------------+--------------+
| Seller_id | _date | Total_amount |
+-----------+------------+--------------+
| 101 | 2021-01-05 | 172800 |
+-----------+------------+--------------+

A continuación, intente actualizar los datos almacenados en la tabla principal como:

Insertar en información (Seller_id, _Date, cantidad) Valores (101, "2021-01-05", 200), (111, "2021-01-05", 600), (121, "2021-02-05", 1000), ("131", "2021-01-05", 6000), ("141", "2021-01-05", 1400);

Finalmente, intente actualizar los datos de la tabla Materialized_View utilizando el procedimiento que creamos anteriormente.

Llamar a refresh_materialv (@dev);
Seleccione * de materializado_view;

Esto muestra los valores en la tabla de vista materializada actualizada.

Conclusión

Este tutorial discutió cuáles son las opiniones materializadas, cómo funcionan y cómo puede implementar uno cuando use MySQL. Considere practicar los conceptos que se enseñan en este tutorial a Master Working con vistas materializadas.