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

浙公网安备 33010602011771号