View indexes for N1QL
You can define a primary or secondary index using view indexes in N1QL using the CREATE INDEX statement. When using view indexes in N1QL, the index definition is fixed and cannot be changed through the Couchbase Web Console or the command line.
Data nodes hash partition data so that data is uniformly distributed across the cluster. View indexes are co-located with the data and each view index contains only a subset of the data that is available on the node.Figure 1. View distribution
View indexes have a higher latency compared to GSI indexes. View indexes are based on scatter-gather architecture where the server scatters the request to other data nodes where the partial view resides, and then gathers the data responses back. As the number of nodes grows, the latency also increases.
View indexes are co-located with data and hence cannot be individually scaled.
View indexes are based on the scatter-gather architecture which touches all the nodes in the cluster. Since all the nodes in the cluster are touched, there is no load-balancing.
When using view indexes, the default consistency setting is
update_after. When using view indexes in N1QL, the index definition is fixed and cannot be changed through the Couchbase Web Console or the command line.
View indexes are replicated and the replica index is co-located with the replica data. If the primary copy of the index is not available, the replica index is queried to retrieve data.