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,转载请注明原文链接:https://www.cnblogs.com/sadness-sa/p/16565378.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义