Safari的dbeddb实现非常慢

Apple最近在OSX上的iOS8 Safari和Safari 7.1中添加了对indexeddb的支持.我试图在一个Web应用程序中使用它,该应用程序在indexeddb中存储大约65,000条记录,并使用一些复合索引查询它们.

它对我有用,但与Chrome的indexeddb实现相比,它确实很慢.

具体而言……针对Chrome的indexeddb需要2ms的查询对Apple的indexedbb需要500ms.此特定查询使用复合indexeddb索引(键中的2个字段),使用键的IDBKeyRange.only值返回约65,000个总计的100个文档.

我的应用程序也支持websql作为存储机制,当我在Safari中切换到它时,性能非常好.我的查询会在几毫秒后返回,就像Chrome一样.

其他人在Apple的indexeddb实现缓慢方面遇到了麻烦吗?有关如何使其更好地工作的任何建议,还是我们只需要等待Apple修复它?

我相信Apple的indexeddb实现实际上只是在websql之上的一个包装器,而且我可以直接使用websql以良好的性能实现我的应用程序,这意味着这样的包装器,如果实现得好,应该可以正常运行.可悲的是,情况还不是这样!

最佳答案 我们已经看到了同样的事情.在
Android上完成插入10000个对象的过程大约需要5到6秒,在iOS8上需要15分钟才能完成.

Safari是一个webkit浏览器,所以如果它使用相同的代码库:

https://github.com/WebKit/webkit/blob/master/Source/WebKit2/DatabaseProcess/IndexedDB

然后,IndexedDB(非常)基于SQLLite数据库.

点赞