代码之家  ›  专栏  ›  技术社区  ›  Magnus

选择列值以最小化SQLite数据库的文件大小?

  •  0
  • Magnus  · 技术社区  · 6 年前

    我有一个SQLite数据库,在其中我修改了一个表来添加一个列,它包含每行的一个永久唯一ID(除了现有的)。 INTEGER PRIMARY KEY 可能被重新分配,因此不是永久性的)。我还希望避免意外混淆正常ID和新的“永久ID”,为此我决定使用 TEXT 列并给每个值一个前缀,例如 pid- .

    所以我只添加了一个名为 perma_id 文本 然后跑 UPDATE mytable SET perma_id = 'pid-' || _rowid_ 为现有行分配值。然后我保存并压缩/清空数据库,并将其压缩为zip文件,因为我将把它包含在Android APK中。

    p... 而不是 pid-... 对于 列值,因此我重新分配了所有值。但令我惊讶的是,文件大小 增加 pid-。。。 和420kB . 如预期的那样,使用 INTEGER 列进一步减少了文件大小,但仅减少到414kB。

    烫发

    编辑

    只是试着用前缀 perma-id-... ,这将导致压缩文件大小为414kB—即,与使用 前缀后面只有数字的列。所以我试着 very-long-permanent-id-with-the-value-... 作为前缀-413kB。头脑发狂。

    0 回复  |  直到 6 年前
    推荐文章