0

我在表上有一个二级索引:

CREATE NULL_FILTERED INDEX RidesByPassenger ON Rides(
  passenger_id,
  start_time,
)

如果我运行以下查询:

SELECT start_time FROM Rides@{FORCE_INDEX=RidesByPassenger}
WHERE passenger_id='someid' AND start_time IS NOT NULL;

我可以确定不会访问基表吗?换句话说,如果我只使用主键的第一部分(在本例中是乘客 ID)查询二级索引,它会只使用二级索引吗?还是基表?另外,有没有办法在我运行查询时询问 Spanner 它正在访问哪些表?

4

1 回答 1

2

由于此查询仅使用索引覆盖的列,因此不会连接基表。您始终可以在 gcloud 工具中运行(查询计划的 EXPLAIN/PROFILE SQL_QUERY)以确保。

于 2017-02-16T00:02:05.420 回答