Materialized view
From Wikipedia, the free encyclopedia
In a database management system following the relational model, a view is a virtual table representing the result of a database query. Whenever an ordinary view's table is queried or updated, the DBMS converts these into queries or updates against the underlying base tables. A materialized view takes a different approach in which the query result is cached as a concrete table that may be updated from the original base tables from time to time. This enables much more efficient access, at the cost of some data being potentially out-of-date. It is most useful in data warehousing scenarios, where frequent queries of the actual base tables can be extremely expensive.
In addition, because the view is manifested as a real table, anything that can be done to a real table can be done to it, most importantly building indexes on any column, enabling drastic speedups in query time. In a normal view, it's typically only possible to exploit indexes on columns that come directly from (or have a mapping to) indexed columns in the base tables; often this functionality is not offered at all.
Materialized views were implemented first by the Oracle database.
There are 3 types of Materialized views:
1) Read only
- Cannot be updated and complex materialized views are supported
2) Updateable
- Can be updated even when disconnected from the master site.
- Are refreshed on demand.
- Consumes fewer resources.
- Requires Advanced Replication option to be installed.
3) Writeable
- Created with the for update clause.
- Changes are lost when view is refreshed.
- Requires Advanced Replication option to be installed.
[edit] External links
- Flexviews for MySQL - incrementally refreshable materialized views w/ MySQL
- Implementing materialized views in PostgreSQL
- Implementing materialized views in MySQL
- Implementing materialized views in Oracle - The Secrets of Materialized Views
- Improving Performance with SQL Server 2005 Indexed Views