Skip to main content
Applies to: Embedded ❌, Enterprise ✅ A materialized view stores a query’s result as rows, kept current by a refresh. It is the counterpart to a view, which stores only the query.
Materialized views are off by default in LanceDB Enterprise and have to be enabled there. Which statements and query shapes a deployment accepts, whether it needs the source table to have stable row ids, and how it refreshes a view depend on its LanceDB Enterprise version and configuration.

CREATE MATERIALIZED VIEW

Once created, a materialized view can be queried like a table. Use the statements below to list, refresh and drop it. For SDK methods, see Materialized views.

SHOW MATERIALIZED VIEWS

This asks the server for its views, as the SDK’s list_materialized_views does on a db:// connection.

Refreshing one

See REFRESH MATERIALIZED VIEW for the full syntax, and compatibility notes for older server versions.

Dropping one

A dedicated statement; the SDKs emit it rather than DROP TABLE, even though a materialized view is a table underneath. For the same reason, dropping one removes stored rows, unlike dropping a view.
Enterprise job type for a refresh: sql. Dropping, by contrast, runs the same underlying job as dropping any table, drop_table or drop_object.

What to read next

Materialized View

Creating one from the SDK.

Refresh a materialized view

How a refresh works, in LanceDB Enterprise.