Apakah MySQL Mendukung Tampilan Terwujud?

Di dunia cararn, kecepatan adalah kuncinya. Saat membangun aplikasi dan perangkat lunak dengan database, kita membutuhkan akses cepat ke data dalam waktu sesingkat mungkin. Untuk itu, kami menerapkan berbagai ukuran basis data, termasuk tampilan yang terwujud.

Namun, tidak seperti PostgreSQL atau Oracle Database, MySQL tidak secara native mendukung tampilan yang terwujud, yang dapat menjadi kerugian besar. Namun, itu bukan alasan untuk berhenti menggunakan MySQL karena ini adalah database yang bagus untuk aplikasi utama.

Dalam tutorial ini, kita akan dengan cepat membahas apa itu tampilan termaterialisasi, cara kerjanya, contoh penerapannya, dan cara mengimplementasikan tampilan termaterialisasi di MySQL.

CATATAN : Saya berasumsi Anda memiliki pengetahuan dasar MySQL sebelum masuk ke panduan ini.

Apakah Pandangan Terwujud?

Tampilan terwujud adalah hasil pra-perhitungan dari kueri yang disimpan dalam tabel. Tidak seperti tampilan MySQL standar, tampilan terwujud bukanlah jendela ke dalam tabel database; itu menyimpan data aktual.

Jenis objek ini sangat berguna saat Anda membutuhkan akses langsung ke data, dan kueri MySQL biasa akan membutuhkan waktu untuk diproses. Contoh yang baik adalah kasus dengan kumpulan data besar yang membutuhkan banyak perhitungan.

Karena tampilan terwujud berisi data nyata, mereka memerlukan penyegaran untuk mencerminkan nilai yang diperbarui dari kueri yang sama. Interval penyegaran untuk tampilan yang terwujud bergantung pada konten yang disimpan dan seberapa cepat data berubah.

Apakah MySQL Mendukung Tampilan Terwujud?

Jawaban sederhananya adalah TIDAK. Di MySQL, tidak ada satu perintah pun yang dapat Anda jalankan untuk mendapatkan tampilan yang terwujud. Misalnya, Anda tidak dapat mengetikkan perintah di bawah ini dan mendapatkan apa yang Anda butuhkan:

Mysql > CREATE MATERIALIZED VIEW

Untungnya, dengan beberapa trik dan alat yang disediakan secara native oleh MySQL, kita dapat mengimplementasikan tampilan termaterialisasi yang mirip dengan yang disediakan secara native oleh PostgreSQL, Oracle, dan lainnya.

Cara Membuat Tampilan Terwujud di MySQL

Pada bagian ini, saya akan menunjukkan cara untuk mengimplementasikan tampilan yang terwujud di MySQL.

CATATAN: Meskipun metode lokakarya ini mengilustrasikan cara membuat tampilan terwujud di MySQL, metode ini tidak akan sempurna di semua database.

Misalkan kita memiliki skema yang disebut (mv) yang memiliki tabel bernama info, digunakan untuk menyimpan informasi penjualan seperti yang ditunjukkan pada kueri di bawah ini:

CREATE SCHEMA mv;
USE mv;
CREATE TABLE info (
   id INT PRIMARY KEY AUTO_INCREMENT,
   seller_id INT,
   _date date,
   amount INT
   );
INSERT INTO info(seller_id, _date, amount) VALUES (101, "2021-01-05", 200), (111, "2021-01-05", 600), (121, "2021-02-05", 1000);

Dengan menggunakan tabel contoh di atas, kita dapat membuat tabel material yang menyimpan informasi kueri seperti yang ditunjukkan di bawah ini:

SELECT seller_id, _date, SUM(amount * 12 * 8) as total_amount FROM info WHERE _date < CURRENT_DATE ORDER BY seller_id;

Query mungkin tampak tidak efektif, mengingat ukuran database dan informasi yang tersimpan pada tabel di atas karena akan diproses dengan sangat cepat. Namun, pada database besar dengan banyak informasi, kueri seperti di atas mungkin memerlukan waktu untuk diproses.

Dalam kasus seperti itu, kami dapat membuat tampilan terwujud untuk menyimpan informasi dari kueri di atas, memungkinkan kami mengakses informasi lebih cepat hanya dengan memilihnya dari tampilan selain menggunakan kueri mentah setiap saat.

Untuk membuat tampilan material, kita dapat membuat tabel dengan hasil query di atas:

CREATE TABLE materialized_view (
SELECT seller_id, _date, SUM(amount * 12 * 8) as total_amount FROM info WHERE _date < CURRENT_DATE ORDER BY seller_id
);

Cara Menyegarkan Tampilan yang Terwujud

Seperti yang Anda ketahui sekarang, tampilan terwujud berisi data nyata; itu bukan snapshot dari tabel.

Itu berarti jika tabel utama diperbarui, data dalam tabel tampilan yang dimaterialisasikan perlu di-refresh.

Untuk menyegarkan tampilan yang terwujud, kita dapat menggunakan prosedur yang ditunjukkan di bawah ini:

DELIMITER $$
CREATE PROCEDURE refresh_materialv(
    OUT dev INT
)
BEGIN
    TRUNCATE TABLE materialized_view;
    INSERT INTO materialized_view
        SELECT seller_id, _date, SUM(amount * 12 * 8) as total_amount
        FROM info
        WHERE _date  SELECT * FROM materialized_view;
+-----------+------------+--------------+
| seller_id | _date      | total_amount |
+-----------+------------+--------------+
|       101 | 2021-01-05 |       172800 |
+-----------+------------+--------------+

Selanjutnya, coba perbarui data yang tersimpan di tabel utama sebagai:

INSERT INTO info(seller_id, _date, amount) VALUES (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);

Terakhir, coba perbarui data tabel materialized_view dengan menggunakan prosedur yang kami buat di atas.

CALL refresh_materialv(@dev);

SELECT * FROM materialized_view;

Ini menampilkan nilai-nilai dalam tabel tampilan terwujud diperbarui.

Kesimpulan

Tutorial ini membahas apa itu tampilan termaterialisasi, bagaimana cara kerjanya, dan bagaimana Anda dapat mengimplementasikannya saat menggunakan MySQL. Pertimbangkan untuk mempraktikkan konsep yang diajarkan dalam tutorial ini untuk menguasai pekerjaan dengan tampilan yang terwujud.

Related Posts