作者:落叶野 | 来源:互联网 | 2023-05-16 18:11
WebSQL和IndexedDB都是用于访问(CRUD)Web浏览器中底层嵌入式数据库的DB API.其中,如果我是正确的,就像SQL一样访问(CRUD)任何客户端 - 服务器数据库,如Oracle等(在许多情况下,WebSQL和IndexedDB的支持在同一浏览器上可用)
那么,这是否意味着WebSQL和IndexedDB都在访问(CRUD)相同的底层嵌入式数据库,如果是这样,那么它将在所有Web浏览器上具有相同的性能!
但我认为情况并非如此,那么它是否意味着Web浏览器将拥有多个底层嵌入式数据库?为什么在同一个浏览器中应该有2个底层嵌入式数据库?
而且由于WebSQL和IndexedDB都是API,所以它意味着说WebSQL和IndexedDB的性能并不完全正确(因为它们更像是查询/访问语言),但它在很大程度上取决于底层嵌入式数据库的性能.而且,根据Google的说法,LevelDB比SQLite更快
是否正确地说它不是WebSQL和IndexedDB之间的性能差异,而是底层嵌入式数据库的性能?
IE,Chrome,Android浏览器的底层嵌入式数据库是什么?我无法在网上找到这些信息,是否有人发现或编译过它?
Jonathan Smi..
19
为了解决第一个问题,的WebSQL从未在Internet Explorer或火狐(实施http://diveintohtml5.info/storage.html,http://caniuse.com/#feat=sql-storage).对于离开Chrome和Safari的"大浏览器"而言,两者都来自WebKit(尽管自从v28 Chrome开始运行在WebKit的分支上,称为'Blink').过去,这两种浏览器都使用SQLite作为WebSQL和IndexedDb的底层数据库,但Chrome将IndexedDb从SQLite切换到LevelDB.
要回答第二个问题,Chrome使用了两种不同的底层数据库技术:
WebSQL - > SQLite
IndexedDb - > LevelDB
我怀疑他们将WebSQL保持为SQLite,因为他们知道它有效.WebSQL现已弃用,在某些时候它将被删除,为什么他们会花时间将它移植到LevelDB.
在WebSQL/IndexedDb与底层数据库性能之间的性能方面,根据iOS Safari的经验,IndexedDb和WebSQL都使用SQLite数据库,但它们在底层数据库的构建方式和执行方式上存在很大差异.在我的测试中,我发现与iOS8中的Safari上的IndexedDb相比,WebSQL的速度是1000次简单数据库插入的两倍.
就你的上一个问题而言,我发现了这一点:
对于IE:
WebSQL - >不支持
IndexedDB - >可扩展存储引擎
对于Firefox:
WebSQL - >不支持
IndexedDB - > SQLite
对于Safari:
WebSQL - > SQLite
IndexedDB - > SQLite
对于Chrome:
WebSQL - > SQLite
IndexedDB - > LevelDB
(来源:WebKit项目,https://bugzilla.mozilla.org/show_bug.cgi ?id = 837141,http://www.aaron-powell.com/posts/2012-10-05-indexeddb-storage.html )
1> Jonathan Smi..:
为了解决第一个问题,的WebSQL从未在Internet Explorer或火狐(实施http://diveintohtml5.info/storage.html,http://caniuse.com/#feat=sql-storage).对于离开Chrome和Safari的"大浏览器"而言,两者都来自WebKit(尽管自从v28 Chrome开始运行在WebKit的分支上,称为'Blink').过去,这两种浏览器都使用SQLite作为WebSQL和IndexedDb的底层数据库,但Chrome将IndexedDb从SQLite切换到LevelDB.
要回答第二个问题,Chrome使用了两种不同的底层数据库技术:
WebSQL - > SQLite
IndexedDb - > LevelDB
我怀疑他们将WebSQL保持为SQLite,因为他们知道它有效.WebSQL现已弃用,在某些时候它将被删除,为什么他们会花时间将它移植到LevelDB.
在WebSQL/IndexedDb与底层数据库性能之间的性能方面,根据iOS Safari的经验,IndexedDb和WebSQL都使用SQLite数据库,但它们在底层数据库的构建方式和执行方式上存在很大差异.在我的测试中,我发现与iOS8中的Safari上的IndexedDb相比,WebSQL的速度是1000次简单数据库插入的两倍.
就你的上一个问题而言,我发现了这一点:
对于IE:
WebSQL - >不支持
IndexedDB - >可扩展存储引擎
对于Firefox:
WebSQL - >不支持
IndexedDB - > SQLite
对于Safari:
WebSQL - > SQLite
IndexedDB - > SQLite
对于Chrome:
WebSQL - > SQLite
IndexedDB - > LevelDB
(来源:WebKit项目,https://bugzilla.mozilla.org/show_bug.cgi ?id = 837141,http://www.aaron-powell.com/posts/2012-10-05-indexeddb-storage.html )
不幸的是,根据我自己的经验,如果您的webapp将在iOS Safari上运行,请不要将其移至IndexedDB.Apple的IndexedDB实现中存在太多错误,迁移到它会引入比修复更多的问题.