[Mongo]用c#對龐大資料做find()問題
大家好,我是芒果新手,剛開始就遇到瓶頸,想請教大家該怎麼做比較好
我不確定我的問題應該要在C#版問還是這裡問,如果有違反版歸請告知
我有一個collection(暫時稱作A collection),裡面有大約20億個documents
這些documents 大概長成這樣
{
_id: ObjectId{xxxx..},
sId: 1 (1~65535),
field3: "xxxx",
field4: .....
}
當我在server上直接下query, 大概5-10秒內可以把資料吐回來
但我用c#寫個簡單的program去撈資料
var client = new MongoClient(connStr);
var db = client.GetDatabase("test");
var collection = db.GetCollection<Item>("A");
var filter = Builder<Item>.Filter.Eq("sId",1);
var list = collection.Find(filter).ToList();
在list這邊就會卡住...
我想應該是 1)資料量太大 2)sId沒有做indexing
目前我想到的解決方式就是把sId加上index
問題一: 面對這麼大量的資料, 我該如何有效率地透過application去獲取資料?
問題二: 如果把某些欄位加上index, 會不會導致在插入新資料時變得很慢?
問題三: 如果我的搜尋條件裡包含好幾個欄位, 我是不是每一個欄位都要加上index?
將近20億筆資料真的很頭痛,而且每天都不斷的增加...
請問有人能夠給我一盞明燈嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 143.111.84.205 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1571693660.A.C01.html
推
10/25 07:14,
5年前
, 1F
10/25 07:14, 1F
推
10/26 10:02,
5年前
, 2F
10/26 10:02, 2F
→
10/26 10:03,
5年前
, 3F
10/26 10:03, 3F
推
10/26 10:06,
5年前
, 4F
10/26 10:06, 4F
推
10/26 10:09,
5年前
, 5F
10/26 10:09, 5F
→
10/26 10:09,
5年前
, 6F
10/26 10:09, 6F
→
10/26 10:09,
5年前
, 7F
10/26 10:09, 7F
推
10/28 19:30,
5年前
, 8F
10/28 19:30, 8F
→
10/28 19:30,
5年前
, 9F
10/28 19:30, 9F
→
10/28 19:42,
5年前
, 10F
10/28 19:42, 10F
→
10/28 19:42,
5年前
, 11F
10/28 19:42, 11F
→
10/28 19:42,
5年前
, 12F
10/28 19:42, 12F
Database 近期熱門文章
PTT數位生活區 即時熱門文章