createIndex 时遇到 checksum error
有这样一个collection,数据量为41443963,在对它的一个名为keywords
的field进行createIndex
时,出现了checksum error
的错误,并且mongod
直接crash退出了,错误的详细信息如图所示:
在遇到这个问题以后,我想到了--repair
操作,在执行了该操作以后,这个coll的数据量减少了104条,这就让我想到了,出现错误的原因很可能是部分数据出现了损坏,进而又想到了我在给这个表insert
数据的时候,使用了多线程操作pymongo,因此,为了测试,我使用单线程将该coll的数据重新跑了一遍,又执行了createIndex
操作,这次没有错误了!
总结 在mongodb执行插入数据的操作时,除非有很高的速度要求,否则不要使用多线程执行并发插入数据操作,避免出现数据损坏的情况,导致后续工作(如createIndex
等)出现问题。