如果我有表 表瞭解輔助索引
CREATE TABLE Users (
userId STRING(36) NOT NULL,
contactName STRING(300) NOT NULL,
eMail STRING(100) NOT NULL,
....
) PRIMARY KEY (userId)
和二級指標
CREATE NULL_FILTERED INDEX ActiveUsersByEMail
ON Users (
eMail,
isActive,
)
和我的選擇記錄:
SELECT * FROM Users WHERE eMail = '[email protected]' AND isActive = TRUE
扳手將自動查找索引,取userId並給我一個記錄?
或者我需要創建
CREATE NULL_FILTERED INDEX ActiveUsersByEMail_01
ON Users (
eMail,
isActive,
userId
)
通過
和第一取用戶名:
SELECT userId from [email protected]{FORCE_INDEX=ActiveUsersByEMail_01} WHERE eMail = '[email protected]' AND isActive = TRUE
,然後我通過拍攝記錄:
`SELECT * FROM Users WHERE userId = '${userId}'``
問題會自動使用或不如果條件與二級索引鍵匹配,標準選擇的扳手二級索引?
請注意,您應該能夠通過詢問該計劃來了解Spanner如何執行您的查詢(使用索引或主表)。這可以通過executeSql方法中的QueryMode選項(https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances.databases.sessions/executeSql)或通過Web界面進行在數據庫上運行查詢。 –