先上代碼:

資料量大概在1600W左右,
情況1:不加任何條件的情況下
count總數:16907883
count運行時間:4ms
find總數:10
find運行時間:8ms
all運行時間:13ms
情況2:加上時間段條件的情況下
MongoDB find start Query: { "$and" : [{ "createTime" : { "$gte" : { "$date" : 1595952000000}}}, { "createTime" : { "$lte" : { "$date" : 1596470400000}}}]}, Fields: {}, Sort: {}
count總數:10993965
count運行時間:22470ms
find總數:10
find運行時間:9ms
all運行時間:22482ms
說明: createTime欄位是加了索引的
情況3: 根據全文索引查詢,結果資料較少的情況
MongoDB find start Query: { "$text" : { "$search" : "111"}}, Fields: {}, Sort: {}
count總數:53
count運行時間:153ms
find總數:10
find運行時間:6ms
all運行時間:161ms
情況4: 根據全文索引欄位查詢,資料較多的情況(幾乎上千萬)
MongoDB find start Query: { "$text" : { "$search" : "1"}}, Fields: {}, Sort: {}
等待實在太長,不統計了
疑問:
1、count方法在加上條件時非常耗時,因為沒走索引??
因為是時間段查詢 所以使用了如下方式進行條件拼裝,
criteria.andOperator(
criteria.where(filedBtwBegin.replace("_begin","")).gte(filedBtwBeginValue),
criteria.where(filedBtwEnd.replace("_end","")).lte(filedBtwEndValue)
);
2、集合中加了全文索引欄位,在查出大資料量是非常慢,有什么方法可以優化??全文索引已經生效了,通過全文索引的規則能查詢出資料,但是就是很慢
3、因為專案做了分頁,所以如果資料量很大,當點到最后一頁時,有時非常非常卡,但是這個和count方法無關了,而且分頁查詢慢
請教各位指點,謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/10294.html
標籤:MongoDB
