【发布时间】:2010-10-14 06:46:54
【问题描述】:
我是开发 HTML5 应用程序的新手。在此,我想使用 HTML5 将 1000 条记录插入到 sqlite 数据库中。这个过程非常缓慢。如何在插入记录之前使用 BEGIN/COMMIT。这样可以加快插入速度。请任何人指导我。提前致谢。请在 chrome 浏览器中运行此示例。 这是供您参考的代码:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
var msg;
//db.transaction(function(tx){tx.executeSql("BEGIN",[]);});
for(var i=0;i<1000;i++)
{
txquer(i,"test");
}
//db.transaction(function(tx){tx.executeSql("COMMIT",[]);});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
}, null);
});
function txquer(i,test)
{
db.transaction(
function(tx){
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (?, ?)',[i,test]);
}
);
}
</script>
</head>
<body>
<div id="status" name="status">Status Message</div>
</body>
</html>
问候, 尼拉哈。
【问题讨论】:
-
有多慢?什么浏览器?有什么代码示例可以看吗?可能与 SQLite 无关,但我相信有可能。
-
您是否真的在执行查询以将日志表中的记录计数为每个日志插入的一部分?这会大大减慢你的速度。