複数のプロセスとコルーチンを使用してデータを同時にクロールすると、mongodbサーバーのCPUが100%に急上昇し、同時クロールの速度に深刻な影響を与えることがわかりました。それで私はチェックして、それがインデックスを追加していると言いました。プログラムでmongodbを操作するためのコードは次のとおりです。
# 存在则更新,不存在则插入
await self._async_collection.update_one({'url_hash':self.url_hash},{"$set":data},True)
したがって、インデックスを作成します。
db.novels.createIndex({"url_hash":1})
CPUはすぐに落ちました。同時に、下図に示すように、クロール速度が明らかに向上しました。
mongodbインデックスの威力はかなり大きいようです。