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