84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
mongodb一個collection裡存了日誌,現在要進行統計分析。因為是記錄日誌,所以經常插入訊息,也就沒有索引。但是分析查表的時候沒有索引又特別慢。想問下有沒有什麼好的方法。暫時2000W資料量。
闭关修行中......
通常來說索引對寫入效能不應該有十分明顯的影響,當然如果你需要加的索引很多,那另當別論。如果沒有試過,建議先試試看你需要的索引到底帶來多大副作用,是否在接受範圍內。如果在,那很好,問題解決。如果不能接受,那可以考慮下面兩個方案:
使用sharding進行改造。你應該已經知道sharding是什麼了,不多做解釋。這個方案帶來的問題顯然就是伺服器數量會有明顯增加,這也是水平擴展的必然結果。從長遠來看,如果你的業務向前發展,這也是必經的道路,所以可以早做打算。
在不同的複製集結點上建立不同的索引如果你現在還在用單結點運行,那建議趕快升級到複製集。單結點硬體故障丟了數據找不回來的案例比比皆是,不要等發生了再後悔。在複製集的前提下,每個結果是可以單獨建立不同的索引的。
停止結點
以不同的連接埠去掉複製集配置後啟動
在這個結點上建立你所需要的索引
以原配置重新啟動
要注意的是複製集仍然要完成主結點上所有的寫入操作,所以索引太多仍然可能造成問題。一切還是要你自己親測下結論。
要么加索引,要么換elasticsearch或hbase。建議儘早換elasticsearch
通常來說索引對寫入效能不應該有十分明顯的影響,當然如果你需要加的索引很多,那另當別論。如果沒有試過,建議先試試看你需要的索引到底帶來多大副作用,是否在接受範圍內。如果在,那很好,問題解決。如果不能接受,那可以考慮下面兩個方案:
使用sharding進行改造。
你應該已經知道sharding是什麼了,不多做解釋。這個方案帶來的問題顯然就是伺服器數量會有明顯增加,這也是水平擴展的必然結果。從長遠來看,如果你的業務向前發展,這也是必經的道路,所以可以早做打算。
在不同的複製集結點上建立不同的索引
如果你現在還在用單結點運行,那建議趕快升級到複製集。單結點硬體故障丟了數據找不回來的案例比比皆是,不要等發生了再後悔。在複製集的前提下,每個結果是可以單獨建立不同的索引的。
停止結點
以不同的連接埠去掉複製集配置後啟動
在這個結點上建立你所需要的索引
以原配置重新啟動
要注意的是複製集仍然要完成主結點上所有的寫入操作,所以索引太多仍然可能造成問題。一切還是要你自己親測下結論。
要么加索引,要么換elasticsearch或hbase。建議儘早換elasticsearch