我們正在使用DynamoDB,並具有一些複雜的查詢,這些查詢將使用代碼輕鬆處理,而不是嘗試編寫複雜的DynamoDB掃描操作。編寫一個掃描操作還是隻使用查詢操作(對散列鍵或二級索引進行查詢)拉取最小量的數據並進一步過濾並減少調用代碼本身更好?這是否被認爲是不好的做法或NoSQL可以做的事情?可以使用代碼而不是NoSQL數據庫進行篩選嗎?
0
A
回答
1
不幸的是,這取決於。
如果你有一個非常大的表格,表格掃描是不實際的。
如果您有複雜的查詢需求,那麼使用DynamoDB解決此問題的最佳方法是使用全局二級索引(Global Secondary Indexes,GSI)充當所需字段上的投影。您可以使用諸如稀疏索引(僅在對象的子集上存在的字段上創建GSI)和複合屬性鍵(連接兩個或更多個屬性並將其用作創建GSI的新屬性)等技術。
但是,要直接解決問題「是否可以使用代碼而不是NoSQL數據庫進行篩選?」答案是肯定的,那是一個可接受的方法。在DynamoDB中執行過濾器的原因不是爲了減少查詢的「成本」,這實際上是相同的,而是爲了減少網絡上不必要的數據傳輸。
理想的解決方案是使用GSI來縮小返回的範圍,儘可能接近您想要的範圍,但是如果需要進行某些額外的過濾,則可以很好地通過在DynamoDB中過濾或使用您自己的代碼。
相關問題
- 1. 我們可以使用Hadoop和任何NoSQL數據庫與Android而不是SQLite
- 2. 是否可以使用Ruby的Cassandra NoSQL數據庫?
- 3. 我可以使用Rails link_to進行POST而不是button_to嗎?
- 4. 我可以爲特定數據查詢Cloudant NOSQL數據庫嗎?
- 5. 數據庫,而不是文件代碼
- 6. TClientDataset - 是否可以使用unicode列名進行篩選?
- 7. 可以使用Realm Mobile Platform而不是使用其他數據庫嗎?
- 8. 使用PHP代碼從MySQL數據庫中進行選擇
- 9. 可以使用Spring框架使用NOSQL數據庫
- 10. 我可以使用ajax選擇mysqli數據庫行嗎?
- 11. 使用noSQL數據庫進行SQL注入?
- 12. 任何使用NoSQL數據庫進行病歷存儲的人?
- 13. Zend2中的Mulliple nosql數據庫連接是可能的嗎?
- 14. 我可以不使用數據庫而只使用Rails調用Web服務嗎?
- 15. NoSQL數據庫可以容納以下數據結構?
- 16. 合併兩個數據幀,而使用布爾指數(進行篩選)
- 17. Ionic從NoSQL或MySQL數據庫使用數據更容易嗎?
- 18. 使用不同數據集運行TestMethod而不是數據庫
- 19. Oracle數據庫:我可以從11g源數據庫執行數據泵exp(而不是expdp)來執行imp(不是impdp)到10g的目標數據庫嗎?
- 20. 在這段代碼中,我可以使用別的東西而不是「this」嗎?
- 21. NoSQL數據庫
- 22. 我可以使用下拉數據緩存,而不是每次請求都從數據庫獲取數據嗎?
- 23. 什麼nosql數據庫可用於azure
- 24. 是否可以使用全局變量進行調試代碼
- 25. c#使用數據庫而不是使用visual studio生成的代碼
- 26. 可以使用JavaFx scenebuilder創建Java代碼而不是FXML
- 27. 可以從函數CreateODBCDate()進行代碼注入嗎?
- 28. 可以運行JavaScript代碼加載JSONP而不是腳本標記嗎?
- 29. 我可以得到我的數據庫代碼嗎?
- 30. 我應該使用NoSQL而不是MySQL嗎?