It's clear to me why a materialized view is preferable over just querying a base table. What is not so clear is the advantage over just creating another table with the same data as the MV. Is the only advantage to the MV really just the ease of creation/maintenance?
Isn't an MV equivalent to a table with matching schema and an INSERT INTO
using the MVs SELECT
statement?
Meaning, you can create an MV as follows:
CREATE MATERIALIZED VIEW ... AS
SELECT * FROM FOO;
And you can create an equivalent table:
CREATE TABLE bar (....);
INSERT INTO bar
SELECT * FROM FOO;
Not to say that ease of creation/maintenance isn't enough of an advantage, I just want to make sure I'm not missing anything.
CREATE VIEW
does not create a Materialized View. – Ringworm