- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据库线程,每 500 毫秒将所有插入查询排序到单个事务中。目前,该应用程序对每条数据执行一次插入。将这么多插入语句排序到类似的插入中并使用更多元素执行更少数量的插入,效率会更高还是更低?我正在尝试减少插入所需的 CPU 功率。
IE(但实际上它的规模更大,元素更多)
Start Transaction
INSERT (A,B,C) INTO TABLE VALUES(1,2,3)
INSERT (A,B,C) INTO TABLE VALUES(4,5,6)
INSERT (A,B,C) INTO TABLE VALUES(7,8,9)
INSERT (A,B,C) INTO TABLE VALUES(10,11,12)
INSERT (A,B,C) INTO TABLE VALUES(13,14,15)
INSERT (A,B,C) INTO TABLE2 VALUES(1,2,3)
INSERT (A,B,C) INTO TABLE2 VALUES(4,5,6)
INSERT (A,B,C) INTO TABLE2 VALUES(7,8,9)
INSERT (A,B,C) INTO TABLE2 VALUES(10,11,12)
INSERT (A,B,C) INTO TABLE2 VALUES(13,14,15)
End Transaction
Versus
Start Transaction
INSERT(A,B,C) INTO TABLE VALUES((1,2,3),(4,5,6),(7,8,9),(10,11,12),(13,14,15))
INSERT(A,B,C) INTO TABLE2 VALUES((1,2,3),(4,5,6),(7,8,9),(10,11,12),(13,14,15))
End Transaction
请求的代码:
public void dbCallInsert(List<String> query) {
// Good practice to create a new statement and result set instead of reusing
Statement stmt = null;
Connection conn = null;
try {
// Fetch the query and the request out of the QueryRequest object
conn = cpds.getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
String temp;
for (String a: query) {
stmt.execute(a);
}
conn.commit();
stmt.close();
conn.close();
} catch (Exception e) {
errorLog.error("Failed to issue database command " + query + ": " + e);
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
errorLog.error("Failed to close JDBC statement.");
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
errorLog.error("Failed to close JDBC connection.");
}
}
}
}
最佳答案
适度借用了Is it possible to insert multiple rows at a time in an SQLite database?的答案.
自从你的INSERT
block 被包裹在 TRANSACTION
中差别不大。请参阅this comment from the SQLite Mailing List :
On Thu, Feb 23, 2012 at 8:25 AM, Petite Abeille wrote:
On Feb 23, 2012, at 2:16 PM, Abhinav Upadhyay wrote:
. I was wondering if I could insert them using a single INSERT query
啊,而且,使用复合 Blade 也没有多大好处。
您也可以简单地将所有值插入一笔交易中,然后 完成。
另一方面,即将发布的 3.7.11 版本似乎支持 多值插入语句。
http://www.sqlite.org/draft/releaselog/3_7_11.html
新的多值插入只是复合词的语法糖 插入。无论哪种方式都没有性能优势。
关于java - SQLite Java 插入 - 许多较小的插入与更少、较大的插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48993458/
我正在通过 PHP 将 .csv 中的两行插入到表中。 我还会跟踪任何错误,如果发生错误,我不会提交事务。插入表后,我检索结果行的 ID(全部在一个事务中提交),并且 csv 的第一行对应于第二个 I
一个应用程序托管一个具有三个接口(interface)的 Web 服务,用于三个单独且独立的操作,所有这些操作都在应用程序的不同组件中实现,彼此独立,例如在不同的包等中,所以他们对彼此了解不多,只共享
我希望在单击特定表格数据单元格时同时选中单选按钮和单选按钮单击事件。我已经使用以下方法实现了这一点: $(document).ready(function() { $("td").click(
JSFiddle:https://jsfiddle.net/oyp1zxaq/ 本质上,我只是想在较大的 div 中放置四个具有定义宽度的较小 div,但我希望它们在其中间隔开。 我想知道是否有一种方
我在一个布局中有两个 View 。我将分别称它们为 View A 和 View B。 ┌──────┐ │┌─┐┌─┐│ ││A││B││ │└─┘└─┘│ └──────┘ 父布局(包括View A
我是一名优秀的程序员,十分优秀!