我有一個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. Google Cloud Spanner for Development
- 7. Cloud Spanner讀取與雲端Spanner SQL API
- 8. RDS上的慢PostgreSQL順序掃描?
- 9. 在Cloud Spanner中存儲UUID
- 10. Cloud Spanner中的AUTOINCREMENT字段
- 11. Cloud Spanner order without ORDER BY
- 12. Bot以相反順序排列網格
- 13. 在highchart如何以相反的順序
- 14. `叉()`兒子以相反的順序
- 15. 如何以相反的順序
- 16. 通過迭代以相反的順序
- 17. 如何以相反順序登錄?
- 18. 遞歸 - 以相反順序的數字
- 19. 顯示以相反的順序
- 20. 以相反的順序打印arraylist
- 21. 範圍按相反順序?
- 22. Postgres反連接需要表掃描?
- 23. 相反順序的列表框(模板)
- 24. jQuery:fadeOut列表項按相反順序
- 25. 全表掃描或索引掃描
- 26. Mysql表掃描
- 27. 爲什麼HttpURLConnection.getHeaderFields()以相反的順序返回一個列表?
- 28. 如何在Grails中以相反順序迭代對象列表?
- 29. Thymeleaf:如何以相反順序遍歷列表?
- 30. 如何以相反的順序打印鏈表?