我想知道将插入语句解压到DBMS的最佳方法是什么。
首先存储您所说的所有值,从像ArrayList这样的dataStructure中的网站中删除是否更好?
或者最好在循环中执行此操作,为每行数据调用insert语句报废?第一种方法将占用一些内存,但是会比第二种方法保持连接开放的时间更短。
此外,在while循环的每次迭代结束时关闭连接是一个好习惯吗?或者更好的是在整个循环期间保持连接打开并在结束时关闭它一次?
请帮我回答这些问题。
答案 0 :(得分:1)
您的问题没有明确的答案。 取决于对许多因素的影响。仅举几例:
这是一个很好的阅读Speed of INSERT Statements。这是简短的摘录:
插入行所需的时间由以下确定 因素,数字表示大致比例:
- 连接:(3)
- 向服务器发送查询:(2)
- 解析查询:(2)
- 插入行:(1×行的大小)
- 插入索引:(1×索引数)
- 结束:(1)
因此,如果您最关心插入速度而不是并发性,那么这里有一些提示: