zhangslob.github.io
                                
                                 zhangslob.github.io copied to clipboard
                                
                                    zhangslob.github.io copied to clipboard
                            
                            
                            
                        MongoDB保存数据的优化方法 | 小歪的博客
https://zhangslob.github.io/2018/12/18/MongoDB%E4%BF%9D%E5%AD%98%E6%95%B0%E6%8D%AE%E7%9A%84%E4%BC%98%E5%8C%96%E6%96%B9%E6%B3%95/
这是崔斯特的第七十九篇原创文章 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(),数据量大会造成数据库压力大,甚至挂掉
@zhangslob
@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
@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()方法里面。
没事啊,这又不是创建索引的操作
@zhangslob
@dta0502
@zhangslob
@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()方法里面。没事啊,这又不是创建索引的操作
好,谢谢博主!