Sqlite IndexedDB性能和IndexedDB v/s WebSQL性能比较

Sqlite IndexedDB性能和IndexedDB v/s WebSQL性能比较,sqlite,browser,indexeddb,web-sql,leveldb,Sqlite,Browser,Indexeddb,Web Sql,Leveldb,WebSQL和IndexedDB都是用于访问(CRUD)web浏览器中底层嵌入式数据库的DB API。如果我没有记错的话,它就像SQL,用于访问(CRUD)任何客户机服务器数据库,如Oracle等(在许多情况下,在同一浏览器上同时支持WebSQL和IndexedDB) 那么,这是否意味着WebSQL和IndexedDB都在访问(CRUD)相同的底层嵌入式数据库?如果是这样的话,那么它在所有web浏览器上都具有相同的性能 但我认为情况并非如此,那么这是否意味着一个web浏览器将有多个底层嵌入式数

WebSQL和IndexedDB都是用于访问(CRUD)web浏览器中底层嵌入式数据库的DB API。如果我没有记错的话,它就像SQL,用于访问(CRUD)任何客户机服务器数据库,如Oracle等(在许多情况下,在同一浏览器上同时支持WebSQL和IndexedDB)

  • 那么,这是否意味着WebSQL和IndexedDB都在访问(CRUD)相同的底层嵌入式数据库?如果是这样的话,那么它在所有web浏览器上都具有相同的性能
  • 但我认为情况并非如此,那么这是否意味着一个web浏览器将有多个底层嵌入式数据库?为什么在同一个浏览器中应该有两个底层嵌入式数据库
  • 由于WebSQL和IndexedDB都是API,所以这意味着说WebSQL和IndexedDB的性能并不完全正确(因为它们更像查询/访问语言),但这在很大程度上取决于底层嵌入式数据库的性能。根据谷歌的说法

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

  • 为了回答第一个问题,WebSQL从未在Internet Explorer或Firefox(,)中实现。就离开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个简单数据库插入的速度是IndexedDb的两倍

    关于你的最后一个问题,我发现:

    对于IE:

    不支持WebSQL->

    IndexedDB->可扩展存储引擎

    对于Firefox:

    不支持WebSQL->

    IndexedDB->SQLite

    用于狩猎:

    WebSQL->SQLite

    IndexedDB->SQLite

    对于铬:

    WebSQL->SQLite

    IndexedDB->LevelDB


    (来源:WebKit项目)

    关于给定浏览器是否支持WebSQL和IndexedDB的信息,我同意您的看法。但我不确定可扩展存储引擎是否是IE的底层嵌入式数据库。我浏览了可扩展存储引擎的Wiki,但没有提及这一点。如果我错了,请纠正我。它可以是SQL Server Compact。根据您的评论-
    但是它们在底层数据库的构造方式和执行方式上有很大的不同。
    请您对此进行说明。你是说IndxedDB和WebSQL在运行时在浏览器中构建自己的数据库?根据我在互联网上读到的大量文章,IE确实使用ESE作为其底层存储引擎。特别是,如果浏览到“C:\Users\%USER%\AppData\Local\Microsoft\Internet Explorer\Indexed DB”文件夹,您将看到IndexedDB创建的文件。我还相信,如果您有权访问ESEUtil工具的副本,您将能够转储IndexedDb的内容。不幸的是,根据我自己的经验,如果您的Web应用程序将在iOS Safari上运行,请不要将其移动到IndexedDb。苹果在IndexedDB的实现中有太多的bug,迁移到IndexedDB会带来比修复更多的问题。“到目前为止,我的理解是,如果IndexedDB是在WebSQL之上实现的……”这是错误的。IndexedDB未在WebSQL之上实现。IndexedDB的引入是为了取代WebSQL。作为旁注,我前面提到的实用程序不是ESEUtil,它实际上是esentutl.exe(可扩展存储引擎实用程序)。我不知道关于ESE还有什么好说的。Internet Explorer上的博客或官方IndexedDB使用ESE数据库。事实