python数据导入mongodb

9亿数据导入mongodb

已知数据数量为943749120,通过计算分析出,分20个集合,每个集合47187456数据。每个集合导入时间为半小时#

        while True:
            line = f.readline(1024)
            if len(line) == 0:
                mapTable.insert_many(arr)
                arr = []
                client.close()
                break
            parts = line.split(" ")
            x = int(parts[0])
            y = int(parts[1])
            z = float(parts[2])
            if start <= x <= end:
                data = {
                    "x": x,
                    "y": y,
                    "z": z
                }
                arr.append(data)
                count += 1
                if count % 50000 == 0:
                    mapTable.insert_many(arr)
                    arr = []

插入数据时,建议使用insert_many,insert_one执行每个集合完成时间为4小时#

进行查询优化,因为业务需求,9亿数据保存之后是不会再新增数据,只需提供查询。该数据为游戏空间坐标(即x,y,z),经过测试查询时间为15s#

分析业务通过x,y查询出z。所以通过建立索引x,y最佳。再次查询,由此可看出,优化后只需0.2s以内(图片上速度是查询时间+网络传输时间)#

作者:sadness-sa

出处:https://www.cnblogs.com/sadness-sa/p/16565378.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

@sadness-sa

posted @   Sadness_sa  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示