Google cloud platform GCP扳手:辅助索引在Update和Delete语句中不起作用

Google cloud platform GCP扳手:辅助索引在Update和Delete语句中不起作用,google-cloud-platform,google-cloud-spanner,Google Cloud Platform,Google Cloud Spanner,辅助索引在扳手中的Update和Delete语句中不起作用。因此,有时简单的update和delete语句需要花费大量时间 我试过这个: 更新表1@{FORCE_INDEX=i_index1}设置column1='abc',其中column2='xyz' 如果这不起作用,那么在大多数情况下,让update和delete语句快速的替代方法是什么呢?,Cloud Paner将自动选择使查询最高效的索引,而无需指定任何索引。在某些情况下,索引可以选择一个使查询速度变慢的索引;这可以解释为什么你的陈述会

辅助索引在扳手中的Update和Delete语句中不起作用。因此,有时简单的update和delete语句需要花费大量时间

我试过这个: 更新表1@{FORCE_INDEX=i_index1}设置column1='abc',其中column2='xyz'


如果这不起作用,那么在大多数情况下,让update和delete语句快速的替代方法是什么呢?

,Cloud Paner将自动选择使查询最高效的索引,而无需指定任何索引。在某些情况下,索引可以选择一个使查询速度变慢的索引;这可以解释为什么你的陈述会持续很长时间

可以通过查看它们的二级索引来查看它们。如果您确实发现索引减慢了查询速度,那么您可以这样做

至于你的云扳手,所以只选择语句,以加快它们的速度;指示UPDATE和DELETE语句不包含辅助索引

由于只能在SELECT语句中使用辅助索引,因此我建议您尝试以下操作: 更新表1 SET column1='abc' columnX在哪里 选择columnX 从表1{FORCE_INDEX=i_index1} 其中第2列='xyz'


基本上可以检索列值,并将它们设置为要匹配的条件值,使用辅助索引作为中介。如果要匹配多个列,可能需要稍微更改语句。

大多数情况下,Cloud Paner会自动选择使查询效率最高的索引,而无需指定任何索引。在某些情况下,索引可以选择一个使查询速度变慢的索引;这可以解释为什么你的陈述会持续很长时间

可以通过查看它们的二级索引来查看它们。如果您确实发现索引减慢了查询速度,那么您可以这样做

至于你的云扳手,所以只选择语句,以加快它们的速度;指示UPDATE和DELETE语句不包含辅助索引

由于只能在SELECT语句中使用辅助索引,因此我建议您尝试以下操作: 更新表1 SET column1='abc' columnX在哪里 选择columnX 从表1{FORCE_INDEX=i_index1} 其中第2列='xyz'


基本上可以检索列值,并将它们设置为要匹配的条件值,使用辅助索引作为中介。如果要匹配多个列,可能需要稍微更改语句。

感谢分享详细信息。我尝试了您提到的方法,但更新速度仍然很慢,尽管使用二级索引时select更好。PDATE table1 SET column1='abc'其中primarykeycolumn在SELECT primarykeycolumn FROM table1@{FORCE_INDEX=i_index1}中column2='xyz'我也在控制台上的分区dml中尝试过,但也没有成功。gcloud Panner数据库执行sql abc-instance=xyz-enable partitioned dml-sql='update*****'任何其他建议!我已经尝试过我向你建议的陈述,它工作正常,但正如你所提到的那样缓慢。出于好奇,我还尝试了您提供的原始语句,但它不起作用,因为二级索引不能直接用于UPDATE或DELETE语句。然而,云扳手运行语句花费很长时间似乎是正常的。您唯一能做的就是等待语句完成,或者重新构造数据库,使其尽可能高效地运行语句。使用分区DML已经是一个很好的开始。您可以查阅,其中包括有关批量加载最佳实践、DML最佳实践、架构设计最佳实践和SQL最佳实践的文章,这将帮助您优化数据库。感谢分享详细信息。我尝试了您提到的方法,但更新速度仍然很慢,尽管使用二级索引时select更好。PDATE table1 SET column1='abc'其中primarykeycolumn在SELECT primarykeycolumn FROM table1@{FORCE_INDEX=i_index1}中column2='xyz'我也在控制台上的分区dml中尝试过,但也没有成功。gcloud Panner数据库执行sql abc-instance=xyz-enable partitioned dml-sql='update*****'任何其他建议!我已经尝试过我向你建议的陈述,它工作正常,但正如你所提到的那样缓慢。出于好奇,我还尝试了您提供的原始语句,但它不起作用,因为二级索引不能直接用于UPDATE或DELETE语句。然而,云扳手运行语句花费很长时间似乎是正常的。您唯一能做的就是等待语句完成,或者重新构造数据库,使其尽可能高效地运行语句 E使用分区DML已经是一个良好的开端。您可以查阅,其中包括有关批量加载最佳实践、DML最佳实践、架构设计最佳实践和SQL最佳实践的文章,这些将帮助您优化数据库。