如果我有表 表了解辅助索引
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界面进行在数据库上运行查询。 –