非常簡單,在我的AppEngine應用程序中,我有超過一百萬種一種實體,那麼隨機選擇一個實體的最佳方法是什麼?從數據存儲中獲取一個隨機實體
3
A
回答
0
-1
也許一個解決方案,但我不知道這是否是最好的:)
import random
from google.appengine.ext import db
from google.appengine.api import memcache
DATA_KEY = "models/keys/random"
def get_data():
data = memcache.get (DATA_KEY)
if data is None:
offset = random.randint (1, 1000000)
data = self.MyModel.all (keys_only=True).fetch (100, offset)
memcache.add (DATA_KEY, data, 60)
entity_key = random.choice (data)
return db.get (entity_key)
+1
隨着偏移大小的增加,獲取時間將會增加。幾乎所有使用此代碼的請求都應該會出現DeadlineExceeded異常。 – geoffspear 2010-09-12 13:02:09
相關問題
- 1. 從Google App Engine數據存儲中獲取隨機記錄?
- 2. 從Objectify實體獲取隨機條目
- 3. 如何從數據存儲中獲取一組唯一的隨機條目
- 4. 從第二個實體獲取數據來自一個實體
- 5. 谷歌數據存儲:查詢隨機實體過濾
- 6. 從arraylist中獲取一個隨機詞
- 7. 如何從實體獲取儲存庫?
- 8. 獲取鍵名從數據存儲實體
- 9. 使用實體框架從存儲過程獲取數據
- 10. 如何從數據存儲獲取過濾實體
- 11. 獲取GAE數據存儲單一實體,效率更高
- 12. 轉到數據存儲查詢獲取單個實體?
- 13. 獲取數據存儲實體到Go中的接口中
- 14. 永久存儲一個隨機數livecode
- 15. 從多個實體CoreData獲取數據
- 16. Google數據存儲,獲取具體的實體屬性
- 17. 從一個表中獲取分組數據中的隨機數據
- 18. 從5個對象之一隨機獲取數據
- 19. 僅使用分區鍵從azure表存儲中檢索n個隨機實體。
- 20. 從同一個數組中獲取兩個隨機單詞
- 21. 從存儲在一個對象中的元素獲取數據
- 22. 核心數據:從獲取的結果中獲取一行隨機數
- 23. PHP從數據庫中獲取唯一的隨機值
- 24. 從列表中獲取隨機10個用戶數據mvc
- 25. 如何從數據存儲中獲取超過200個數據
- 26. 從數據庫中獲取隨機數據
- 27. 獲取從數據庫中隨機數據,而不
- 28. PHP代碼從鏈接數據庫中獲取隨機數據
- 29. 生成要存儲在數據庫中的唯一隨機數
- 30. 如何獲取數據存儲區的密鑰實體
可能重複[如何獲得數據存儲在隨機的東西( AppEngine)?](http://stackoverflow.com/questions/3450926/how-to-get-something-random-in-datastore-appengine) – 2010-09-12 18:00:21
[從Google App Engine數據存儲中獲取隨機記錄?]的可能重複(http://stackoverflow.com/questions/3002999/fetching-a-ra ndom-record-from-google-app-engine-datastore) – 2010-09-13 10:21:18