我有一个Cloud Spanner表,其主键排序未指定,所以它默认为ASC(升序)。我有一个查询,我想在DESC(降序)顺序中按主键排序结果。基于Cloud Spanner文档,似乎ORDER BY DESC并不是以相反顺序扫描表的最有效方式。据我了解,执行反向扫描的正确方法是在表上创建反向索引。这是最好的方法,还是有更好的我可以做的?以相反顺序扫描Cloud Spanner表
0
A
回答
0
这是正确的,ORDER BY DESC目前在Cloud Spanner中的效率并不像按键顺序扫描(如果按ASC顺序)。您可以使用DESC顺序创建二级索引,或者可以在表的主键中使用DESC排序(不幸的是,这会要求您重新创建表)。
通常,任何与表或索引排序不匹配的ORDER BY子句都需要排序步骤,因此会影响性能。因此,如果表或索引以相同的方式排序,则会执行ORDER BY DESC扫描。如果某些关键组件是按顺序排列的ASC,而其中一些是DESC,则这会变得特别复杂,因此最好确保ORDER BY子句与表或索引的顺序完全匹配。要了解的重要一点是Spanner以主键顺序存储数据(请参阅https://cloud.google.com/spanner/docs/schema-and-data-model#primary_keys),并且存储格式支持高效的正向扫描。对于索引,主键是可用于在索引中查找项目的一组列。
相关问题
- 1. HBASE行前缀扫描以相反的顺序在HBase的
- 2. PostgreSQL顺序扫描小表缓慢
- 3. 以相反顺序添加制表符?
- 4. 以相反的顺序
- 5. 以相反的顺序
- 6. unpickle以相反的顺序
- 7. 以相反的顺序
- 8. TemplateBeginRepeat以相反的顺序
- 9. Plist以相反的顺序
- 10. Google Cloud Spanner for Development
- 11. Cloud Spanner读取与云端Spanner SQL API
- 12. RDS上的慢PostgreSQL顺序扫描?
- 13. Cloud Spanner order without ORDER BY
- 14. Cloud Spanner中的AUTOINCREMENT字段
- 15. 在Cloud Spanner中存储UUID
- 16. BigQuery jobs.list以非相反顺序
- 17. BMP扫描行中的字节顺序
- 18. 以相反的顺序从mysql_fetch_assoc()
- 19. php数组以相反顺序排列
- 20. 按相反顺序排序列表
- 21. Bot以相反顺序排列网格
- 22. 以相反的顺序打印arraylist
- 23. 如何以相反的顺序
- 24. 如何以相反顺序登录?
- 25. 菜单以相反的顺序出现
- 26. 以相反顺序获取xml值
- 27. 如何以相反顺序循环?
- 28. 以相反顺序打印阵列
- 29. 显示以相反的顺序
- 30. `叉()`儿子以相反的顺序