html分配数据库的大小,HTML5 Web SQL DB – 最大表大小?

我是构建一个相当复杂的

HTML5 Web应用程序的一部分,该应用程序从Web服务检索其数据以填充Web SQL数据库.

一切都与测试数据相符,然后我尝试使用一些真实的数据(一个大约10列和超过180,000行的表)并遇到了一些问题.

我在500个插入的“块”中发送SQL响应,然后运行事务并从Web服务获取下一个响应.这工作正常,直到表达到大约9000行,然后它就不再需要了.此时数据库文件大小仍然低于2MB,我的最大大小设置为20MB,所以我不认为这是问题.

我设法用更简单的代码重新创建类似的问题,所以其他人可以看到我在说什么. (出于某种原因,我不能把它全部留在“代码块”(对不起))

//var qsParm = new Array();

var bigData = {};

bigData.webdb = {};

var readOnly = false;

bigData.webdb.open = function() {

bigData.webdb.db = null;

var dbSize = 20 * 1024 * 1024; // 20MB

infinity.webdb.db = openDatabase('bigData', '', 'bigData DATA', dbSize);

};

bigData.webdb.onError = function(tx, e) {

alert('Something unexpected happened: ' + e.message);

};

bigData.webdb.createTable = function() {

var db = bigData.webdb.db;

db.transaction(function(tx) {

tx.executeSql("CREATE TABLE IF NOT EXISTS [MattTest] ([Foo] VARCHAR(32) PRIMARY KEY ASC, [Bar] VARCHAR(20), [Will] VARCHAR(100), [Smith] VARCHAR(100))", []);

});

db.transaction(function(tx) {

var i=0;

for(i=0; i<19000; i++)

tx.executeSql("INSERT INTO [MattTest] (Foo, Bar, Will, Smith) VALUES (?,?,?,?)", ['Foo' + i, 'Bar', 'Now this is the story all about how My life got flipped turned upside down', 'And Id like to take a minute just sit right there Ill tell you how I became the prince of a town called Bel Air']);

}

});

};

请忽略字符串值,它只是填充varchar大小(SQLite似乎不填充char类型).

在上面的“19000”次迭代(或下面的任意数字)中,将在Chrome中创建表格,并正确输入所有数据.数据库大约4MB. Safari会让我添加更多行,我在Safari中的数据库大小可达10MB左右.

如果我尝试删除表格的内容并将迭代次数增加到20,000,则Chrome无法完成交易.

有没有人对可能导致这种情况的原因有任何想法?

我希望我已经详细解释了这个问题.如果我太模糊,请随时提出任何问题.

谢谢你的帮助.

更新:我尝试添加一些错误处理,响应是“约束失败”.我对可能导致这种情况的原因做了一些研究,但我仍在努力寻找答案.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值