MongoDB保存数据的优化方法 | 小歪的博客
Opened this issue · 7 comments
这是崔斯特的第七十九篇原创文章
MongoDB保存数据的优化方法 (๑• . •๑)
请问博主,您在《Scrapy中如何提高数据的插入速度》这篇博文中的MongoDB 索引部分为什么添加索引放在了open_spider()
方法里面而不是在process_item()
方法里?
@dta0502
请问博主,您在《Scrapy中如何提高数据的插入速度》这篇博文中的MongoDB 索引部分为什么添加索引放在了open_spider()
方法里面而不是在process_item()
方法里?
process_item()
每次插入数据时就会创建一次索引,open_spider()
只会创建一次
@zhangslob
感谢博主解答!
意思就是说open_spider()
方法是只会调用一次,那么如果我用了process_item()
方法创建索引,会有什么后果呢,频繁调用性能下降?
@dta0502
@zhangslob
感谢博主解答!
意思就是说open_spider()
方法是只会调用一次,那么如果我用了process_item()
方法创建索引,会有什么后果呢,频繁调用性能下降?
每插入一次数据就会调用一次process_item()
,数据量大会造成数据库压力大,甚至挂掉
@dta0502
@zhangslob
感谢博主解答!
意思就是说open_spider()
方法是只会调用一次,那么如果我用了process_item()
方法创建索引,会有什么后果呢,频繁调用性能下降?每插入一次数据就会调用一次
process_item()
,数据量大会造成数据库压力大,甚至挂掉
这是《精通scrapy网络爬虫》书中的一个实例:
def process_item(self, item, spider):
collection = self.db[spider.name]
post = dict(item) if isinstance(item, Item) else item
collection.insert_one(post)
return item
这样的写法合理吗, collection = self.db[spider.name]
写在process_item()
方法里面。
@dta0502
@zhangslob
感谢博主解答!
意思就是说open_spider()
方法是只会调用一次,那么如果我用了process_item()
方法创建索引,会有什么后果呢,频繁调用性能下降?每插入一次数据就会调用一次
process_item()
,数据量大会造成数据库压力大,甚至挂掉这是《精通scrapy网络爬虫》书中的一个实例:
def process_item(self, item, spider): collection = self.db[spider.name] post = dict(item) if isinstance(item, Item) else item collection.insert_one(post) return item这样的写法合理吗,
collection = self.db[spider.name]
写在process_item()
方法里面。
没事啊,这又不是创建索引的操作
@dta0502
@zhangslob
感谢博主解答!
意思就是说open_spider()
方法是只会调用一次,那么如果我用了process_item()
方法创建索引,会有什么后果呢,频繁调用性能下降?每插入一次数据就会调用一次
process_item()
,数据量大会造成数据库压力大,甚至挂掉这是《精通scrapy网络爬虫》书中的一个实例:
def process_item(self, item, spider): collection = self.db[spider.name] post = dict(item) if isinstance(item, Item) else item collection.insert_one(post) return item这样的写法合理吗,
collection = self.db[spider.name]
写在process_item()
方法里面。没事啊,这又不是创建索引的操作
好,谢谢博主!