MongoDB技術筆記

createIndex 時遇到 checksum error

有這樣一個collection,數據量為41443963,在對它的一個名為keywords的field進行createIndex時,出現了checksum error的錯誤,並且mongod直接crash退出了,錯誤的詳細資訊如圖所示:

在遇到這個問題以後,我想到了--repair操作,在執行了該操作以後,這個coll的數據量減少了104條,這就讓我想到了,出現錯誤的原因很可能是部分數據出現了損壞,進而又想到了我在給這個表insert數據的時候,使用了多執行緒操作pymongo,因此,為了測試,我使用單執行緒將該coll的數據重新跑了一遍,又執行了createIndex操作,這次沒有錯誤了!

總結 在mongodb執行插入數據的操作時,除非有很高的速度要求,否則不要使用多執行緒執行並發插入數據操作,避免出現數據損壞的情況,導致後續工作(如createIndex等)出現問題。