2016-04-14 12 views
0

SQLiteデータベースからいくつか余分なサイズを取り除こうとしています。私のWebServicesからiOSアプリケーションに引き出しています。私はいくつかの別々のテストをして、テーブルを大きくする必要がある。SQLite INTEGERの最適化

私は約223kレコードの価格表を持っています。 2つのREALカラムをINTEGER * 100に変換するだけで、既に私のテーブルのサイズはキロバイトで34%戻ってくれました。実際には衝撃的でした..

私はこのばかげた違いに気づいたので、同じ(223k)レコードのINTEGERタイプの1列の1つのテーブルを持っていることを確認しました。

  • 100結果内ですべての行を充填1,9MBファイル
  • NULL0または1結果のいずれかですべての行を充填:

    だからここは私が(I VACUUMすべてのテストの後に)気づいたものですですべての行を充填2,4MBファイル内10000結果

  • から1000ですべての行を充填2,1MBファイル
  • INTEGERフィールド型のダイナミック上のオーバーヘッドがありますように私は本当に感じている3,1MBファイル内10000000結果

ですべての行を充填3,0MBファイル内の結果

  • 。 SQLiteにintの値を格納する安価な方法はありませんか?これは唯一の最終ゲームですか?

  • 答えて

    0

    SQLiteのrecord formatで使用されている内部記憶域タイプを正しく推測しました。

    ウェブ上でダウンロードするデータのサイズを縮小する最も良い方法は、ファイルを圧縮することです。

    +0

    ええ私はすでに大きな勝利を誇っているgzip圧縮を使っていますが、単なる整数よりも大きな量のキロバイトを失うのは非常に残念です。 JSONをバイパスすることを強く検討しています。 –

    +0

    @Allendar JSONにはテキストとして保存される可変長整数もあります。 223kの '10000000'を格納するための整数桁だけが1.7MBのスペースを必要とします。 –