一日一技:为 pymongo 的批量插入功能进一步加速

简介: 一日一技:为 pymongo 的批量插入功能进一步加速

摄影:产品经理把豆腐切成猴头菇的神刀功

我们知道,使用 Pymongo 插入数据的时候,凑够一批数据,并调用insert_many()批量插入,速度会远远超过一条一条插入。在默认情况下,我们只给这个方法传一个参数:包含字典的列表:

import pymongo
handler = pymongo.MongoClient().example.col
datas = [
    {'name': 'kingname', 'salary': 99999999},
    {'name': 'pm', 'salary': 8888888}
]
handler.insert_many(datas)

此时,这个列表中的所有字典,会被按顺序一条一条插入到 MongoDB 的某个集合中。

实际上,如果你看 pymongo 的官方文档[1],你会发现 insert_many 还有几个默认参数:


其中参数 ordered 的作用是保证插入的顺序和列表中的字典顺序一致。如果列表中的某一个字典无法被插入,那么这个字典后面的所有数据都无法插入。

如果把 ordered 设置为 False,那么此时列表中的所有字典会被乱序插入,甚至还能够并行插入从而提高插入速度,其中一个字典有问题无法插入不会影响其它的字典,唯一的弊端就是插入到集合中的顺序可能与列表中的字典顺序不一致。

所以,如果你对插入的顺序不太在意,但对插入速度很敏感,那么你可以这样修改代码:

import pymongo
handler = pymongo.MongoClient().example.col
datas = [
    {'name': 'kingname', 'salary': 99999999},
    {'name': 'pm', 'salary': 8888888}
]
handler.insert_many(datas, ordered=False)
目录
相关文章
|
5月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
5月前
|
SQL 存储 调度
从 Volcano 火山模型到 Pipeline 执行模型,阿里云数据库 SelectDB 内核 Apache Doris 执行模型的迭代
一个合适的执行模型对于提高查询效率和系统性能至关重要。本文全面剖析 Apache Doris Pipeline 执行模型的设计与改造历程,并在 2.1 版本对并发执行模式与调度模式进一步优化,解决了执行并发受限、执行及调度开销大等问题。
从 Volcano 火山模型到 Pipeline 执行模型,阿里云数据库 SelectDB 内核 Apache Doris 执行模型的迭代
|
17天前
|
关系型数据库 MySQL 数据处理
针对MySQL亿级数据的高效插入策略与性能优化技巧
在处理MySQL亿级数据的高效插入和性能优化时,以上提到的策略和技巧可以显著提升数据处理速度,减少系统负担,并保持数据的稳定性和一致性。正确实施这些策略需要深入理解MySQL的工作原理和业务需求,以便做出最适合的配置调整。
69 6
|
2月前
|
SQL 缓存 监控
优化大型数据库查询的最佳实践
在处理大规模数据时,数据库查询性能的优化至关重要。本文探讨了几种优化大型数据库查询的最佳实践,包括索引策略、查询重写、数据分区和缓存机制。通过这些方法,开发人员可以显著提高查询效率,减少系统负担,提升用户体验。本文还结合实际案例,提供了具体的优化技巧和工具建议,帮助读者有效地管理和优化大型数据库系统。
|
2月前
|
关系型数据库 MySQL 数据库
如何利用MySQL建立覆盖原表的索引优化查询性能
通过合理使用覆盖索引,可以显著提高MySQL数据库的查询性能。然而,创建索引时需要仔细分析查询需求,合理设计索引结构,以确保索引能够发挥最大的效益。
61 0
|
5月前
|
缓存 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
619 0
|
4月前
|
存储 关系型数据库 MySQL
深入探索MySQL:成本模型解析与查询性能优化
深入探索MySQL:成本模型解析与查询性能优化
|
4月前
|
NoSQL MongoDB 数据库
MongoDB索引:加速查询、提升性能的利器
MongoDB索引:加速查询、提升性能的利器
|
4月前
|
NoSQL MongoDB 数据库
MongoDB排序操作解析:优化性能,精准控制数据展示
MongoDB排序操作解析:优化性能,精准控制数据展示
|
4月前
|
监控 NoSQL MongoDB
深度优化:掌握 MongoDB 查询分析的关键技巧
深度优化:掌握 MongoDB 查询分析的关键技巧
下一篇
无影云桌面