【问题标题】:PouchDb Local database sizePouchDb 本地数据库大小
【发布时间】:2018-07-07 04:17:41
【问题描述】:

我们正在 ionic3 中开发一个使用 PouchDB 和 CouchDB 的应用程序。我们想在 2 月中旬推出,但我们担心如果数据库增长太多,我会耗尽设备中的内存。

为了进行测试,我们想插入数千条记录并检查数据库大小。我们遇到了问题。我们不知道如何获取本地数据库大小。 我正在研究 PouchDB 文档,但我只找到了如何获取有关远程数据库大小的信息,但不是本地的。我认为远程大小不必等于本地大小。有人有想法吗?

谢谢

【问题讨论】:

    标签: ionic2 ionic3 pouchdb


    【解决方案1】:

    我找到了一个部分解决方案,它是部分解决方案,因为它仅适用于 android、chrome 和 firefox,但不适用于 ios 和 safari。我已经使用了这个和可用的存储空间

     calculaEspacio(){
    let nav: any = navigator;
    nav.storage.estimate().then((obj)=>{ 
      this.usado=Math.round(((obj.usage/1048576)*100))/100;
      this.total = Math.round(((obj.quota/1048576)*100))/100;
    })}
    

    有谁知道 webkit 的等价物吗?

    【讨论】:

    • 您始终可以在您的 ionic 应用程序中嵌入 chromium 浏览器,以避免与浏览器相关的任何问题。
    【解决方案2】:

    例子

    npm install pouchdb pouchdb-size
    

    //index.js

    var PouchDB = require('pouchdb');
    PouchDB.plugin(require('pouchdb-size'));
    
    var db = new PouchDB('test');
    db.installSizeWrapper();
    db.info().then(function (resp) {
        //resp will contain disk_size
    })
    

    pouchdb-size https://github.com/pouchdb/pouchdb-size

    构建状态依赖状态 devDependency 状态

    为您的 *down 支持的 PouchDB 将 disk_size 添加到 info() 的输出中。

    通过 leveldown、sqldown、jsondown、locket 和 medeadown 测试。当它无法确定数据库大小时,它会回退到默认的 info() 输出。

    【讨论】:

      【解决方案3】:

      完整信息here

      如果您使用的是 Ionic 3,我想您可以使用 SQLite 插件来获得无限数据

      【讨论】:

      • 请记住,据说 SQLite 插件提供的性能较低。
      • @Flimzy 是的,因此我不使用它。我真正担心的是数据过多时的性能,因为我读到 Pouch 对 couchdb 进行查询不是一个好习惯,而且我的应用程序中有所有数据(在数组中),我使用 array.filter 之类的函数进行搜索。当我有一个包含一百个项目的数组时,我担心性能。对于测试,我想知道数据库如何增长并查看性能问题。
      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 2020-03-01
      • 2016-12-06
      • 2016-06-15
      相关资源
      最近更新 更多