WebSQL 和 IndexedDB 都是用于在 Web 浏览器中访问(CRUD)底层嵌入式数据库的 DB API。如果我没猜错的话,这就像用于访问(CRUD)任何客户端服务器数据库(如 Oracle 等)的 SQL(在许多情况下,同一浏览器上都支持 WebSQL 和 IndexedDB)
- 那么,这是否意味着 WebSQL 和 IndexedDB 都访问(CRUD)相同的底层嵌入式数据库,如果是这样,那么它将在所有 Web 浏览器上具有相同的性能!
- 但我认为事实并非如此,那么这是否意味着网络浏览器将拥有多个底层嵌入式数据库?为什么同一个浏览器中应该有2个底层嵌入式数据库?
由于WebSQL和IndexedDB是API,因此这意味着WebSQL和IndexedDB的性能并不完全正确(因为它们更像查询/访问语言),但它很大程度上取决于底层嵌入式数据库的性能。而且,根据谷歌的说法,LevelDB 比 SQLite 更快
- 难道说重要的不是WebSQL和IndexedDB之间的性能差异,而是底层嵌入式数据库的性能差异?
- IE、Chrome、Android浏览器的底层嵌入式数据库是什么?我在网上找不到此信息,有人找到或编译过吗?
为了解决你的第一个问题,WebSQL 从未在 Internet Explorer 或 Firefox 中实现(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 个简单数据库插入时速度快了一倍。
关于你的最后一个问题,我发现了这一点:
For IE:
WebSQL -> 不支持
IndexedDB -> 可扩展存储引擎
对于火狐浏览器:
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)