Sqlite IndexedDB性能和IndexedDB v/s WebSQL性能比较
WebSQL和IndexedDB都是用于访问(CRUD)web浏览器中底层嵌入式数据库的DB API。如果我没有记错的话,它就像SQL,用于访问(CRUD)任何客户机服务器数据库,如Oracle等(在许多情况下,在同一浏览器上同时支持WebSQL和IndexedDB)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从未在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数据库。事实