我想用一些值填充我的数据存储区。做这个的最好方式是什么 ? 这是我的代码 -
for n in range(seqlen):
for m in range(n+1):
for l in range(m+1):
temp = [-BIGINT for k in range(m-l+1)]
obj = DbEntity4D(key_name=str(n)+','+str(m) +','+ str(l))
obj.value = temp
obj.put()
还是这个更好?
for n in range(seqlen):
for m in range(n+1):
for l in range(m+1):
temp = [-BIGINT for k in range(m-l+1)]
obj[i] = DbEntity4D(key_name=str(n)+','+str(m) +','+ str(l))
obj[i].value = temp
i = i+1
db.put(obj)
或者还有其他更好的方法吗?
seqlen可以是1到1000.它可能无法在10分钟内完成整个过程,但我可以从我之前离开的地方继续我的下一个任务。
答案 0 :(得分:2)
通过消除到数据存储区的往返,批处理数据存储区将节省大量时间。
看起来您正在尝试使用后一段代码执行此操作(一次保存m
个实体)。在seqlen
为1000的情况下,您一次最多可以写入1000个实体。但是,一次写入的数字实体会有所不同,因为最内层的for循环因其生成的实体数量而异。如果您等待保存到数据库,直到收集n
(一些大量)DbEntity4D
个实体,然后保存它们(而不是始终在最内层后立即保存它们),它可能会更快环)。当然,这可能会使逻辑变得复杂化,这个逻辑允许下一个任务继续添加创建这些实体的位置。