2017-02-19 27 views
0

案例1:Mysql的,pymysql如何從數據庫(mysql或mongodb)每次選擇N項?

的代碼塊下圖爲將產生髮電機,如何從數據庫中獲取N項,並將它們發送到與multithreading.For例如一些功能,我想選擇數據庫10K項目每次,總項目爲1億,所以總數爲1億/ 10k = 10k。

cursor.execute(sql) 
for result in cursor: 
    yield result 

情況2:MongoDB中,pymongo

for result in db.find(): 
    yield result 

發生器是保存大量內存當數據庫具有大數據集的函數。

我試過的是itertool.islice,但它只是返回前N個項目的發生器。因此,對於這兩種情況,您是否有更好的解決方案來每次選擇N個項目?謝謝!

回答

-1

在sql中使用限制10000 *({page} - 1),10000。 對於mongo,請使用光標的函數跳過和限制。

然後,您可以在每個循環中批量獲得10k個文檔。

+0

感謝您的回答,您能否更清楚一點? –