GCP Spanner:二级索引在更新和删除语句中不起作用
GCP Spanner: Secondary Index doesn't work in Update and Delete statements
辅助索引在扳手的更新和删除语句中不起作用。由于有时简单的更新和删除语句会花费很多时间
我试过这个:
"update table1@{FORCE_INDEX=i_index1} set column1='abc' where column2='xyz'"
如果这不起作用,那么有什么替代方法可以快速更新和删除语句
大多数时候,Cloud Spanner 会自动选择使查询最高效的索引,无需指定任何索引。在某些情况下,索引可以选择一个会使查询变慢的索引;这可能是关于为什么你的陈述 运行 很长一段时间的可能解释。
可以troubleshoot slow queries by looking at their secondary indexes. If you do find out that an index is slowing down your query, then you can specify another index。
就您的 Cloud Spanner 而言,secondary indexes are used for common queries,因此只有 SELECT 个语句,以加快它们的速度;指示 UPDATE 和 DELETE 语句将不包含二级索引。
由于您只能在 SELECT 语句中使用您的二级索引,因此我建议您尝试以下操作:
更新表 1
SET column1 = 'abc'
WHERE 列 X IN
(SELECT 列 X
从表 1@{FORCE_INDEX = i_index1}
其中 column2 = 'xyz')
您基本上是检索列值并将它们设置为要匹配的 WHERE 条件值,使用二级索引作为中介。如果您想匹配很多列,您可能需要稍微更改一下语句。
辅助索引在扳手的更新和删除语句中不起作用。由于有时简单的更新和删除语句会花费很多时间
我试过这个: "update table1@{FORCE_INDEX=i_index1} set column1='abc' where column2='xyz'"
如果这不起作用,那么有什么替代方法可以快速更新和删除语句
大多数时候,Cloud Spanner 会自动选择使查询最高效的索引,无需指定任何索引。在某些情况下,索引可以选择一个会使查询变慢的索引;这可能是关于为什么你的陈述 运行 很长一段时间的可能解释。
可以troubleshoot slow queries by looking at their secondary indexes. If you do find out that an index is slowing down your query, then you can specify another index。
就您的 Cloud Spanner 而言,secondary indexes are used for common queries,因此只有 SELECT 个语句,以加快它们的速度;指示 UPDATE 和 DELETE 语句将不包含二级索引。
由于您只能在 SELECT 语句中使用您的二级索引,因此我建议您尝试以下操作: 更新表 1 SET column1 = 'abc' WHERE 列 X IN (SELECT 列 X 从表 1@{FORCE_INDEX = i_index1} 其中 column2 = 'xyz')
您基本上是检索列值并将它们设置为要匹配的 WHERE 条件值,使用二级索引作为中介。如果您想匹配很多列,您可能需要稍微更改一下语句。