Loading

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以内(图片上速度是查询时间+网络传输时间)

posted @ 2022-08-09 11:42  Sadness_sa  阅读(217)  评论(0)    收藏  举报