A global secondary index lets ScyllaDB query indexed columns without the base table’s partition key. It maintains a mapping from indexed values to rows, but partitions that mapping differently from the base table, so indexed data may live on different cluster nodes. section 7.3.3
Indexing authors by name
For the reviews application, `CREATE INDEX authors_by_name ON authors(name);` creates a global index because `authors` is partitioned by `id`, which is absent from the index. A query such as `SELECT * FROM reviews.authors WHERE name = 'Alice Author';` can then find the matching row without specifying `id`.
The convenience has a cluster-wide cost. A lookup first reads the index and then reads matched rows from the base table; broad searches can fan out across many partitions and add load to every node. A local secondary index avoids this fanout by sharing the base table’s partition key, while a materialized view instead duplicates data under a query-specific partitioning scheme. section 7.3.3 section 7.4
