WebSQL和IndexedDB都是用于在Web浏览器中访问(CRUD)基础嵌入式数据库的DB API。如果我是对的,那就像是用于访问(CRUD)的SQL(如Oracle等)的任何客户端服务器数据库(在许多情况下,在同一浏览器上都可以同时支持WebSQL和IndexedDB)

  • 因此,这是否意味着WebSQL和IndexedDB都在访问(CRUD)相同的基础嵌入式数据库,如果是这种情况,那么它将在所有Web浏览器上具有相同的性能!

  • 但是我认为并非如此,这是否意味着Web浏览器将具有多个底层嵌入式数据库?以及为什么在同一浏览器中应该有2个底层嵌入式数据库?

  • 而且由于WebSQL和IndexedDB是API的,所以这意味着说WebSQL和IndexedDB的性能并不完全正确(因为它们更像查询/访问语言),但是它很大程度上取决于底层嵌入式数据库的性能。而且,按照Google的说法,LevelDB is faster than SQLite

  • 正确地说,这不是WebSQL和IndexedDB之间的性能差异,而是底层嵌入式数据库的性能差异吗?
  • IE,Chrome,Android浏览器的底层嵌入式数据库是什么?我无法在网上找到此信息,是否有人找到或编辑过此信息?
  • 最佳答案

    为了解决您的第一个问题,WebSQL从未在Internet Explorer或Firefox(http://diveintohtml5.info/storage.htmlhttp://caniuse.com/#feat=sql-storage)中实现。就离开Chrome和Safari的“大型浏览器”而言,它们都是WebKit诞生的(尽管自v28开始,Chrome一直在WebKit的fork中运行,称为“Blink”)。过去,这两种浏览器都使用SQLite作为WebSQL和IndexedDb的基础数据库,但是Chrome将IndexedDb从SQLite切换到LevelDB。

    为了回答您的第二个问题,Chrome使用了2种不同的基础数据库技术:

    WebSQL-> SQLite

    IndexedDb-> LevelDB

    我怀疑他们将WebSQL保留为SQLite,因为他们知道它可以工作。现在已弃用WebSQL,并在某个时候将其删除,因此他们为什么花时间将其移植到LevelDB。

    在WebSQL/IndexedDb与基础数据库之间的性能方面,根据iOS Safari的经验,IndexedDb和WebSQL都使用SQLite数据库,但是在基础数据库的构造方式和性能方面存在很大差异。在我的测试中,我发现与在iOS 8的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=837141http://www.aaron-powell.com/posts/2012-10-05-indexeddb-storage.html)

    10-08 14:31