1

2つのSQLiteデータベースを使用してiPhoneアプリを開発しています。1つだけ使うべきかしら。

最初のデータベースには、12個の小さなテーブルがあります(それぞれに4つまたは5つのINTEGERまたはTEXT列があります)。ほとんどのテーブルには数十行しかありませんが、1つのテーブルには数千行の「アイテム」があります。テーブルはすべて関連しているため、テーブル間に多くの結合があります。

2番目のデータベースにはテーブルが1つだけ含まれています。最初のデータベースの「アイテム」(アイテムの写真)の一部に関連する1行のBLOB列があります。これらのBLOBはプログラムのごく一部でのみ使用されるため、最初のデータベースに接続または結合されることはめったにありません(行は結合なしで簡単にフェッチできます)。

最初のデータベースファイルサイズは約メガバイトになります。BLOBを含むdbは、はるかに大きくなります(約50メガバイト)。BLOBを持ち運ぶことなく、より小さなデータベースをバックアップできるようにしたかったので、BLOBを分離しました。また、BLOBを分離すると、小さいテーブルのパフォーマンスが向上する可能性があると思いましたが、よくわかりません。

BLOBを分離するために2つのデータベース(特にSQLIteデータベース)を使用することと、非常に狭いテーブルでいっぱいのテーブルをBLOBのテーブルと混合した1つのデータベースを使用することの長所と短所は何ですか?

4

1 に答える 1

1

50 MBでも、これは非常に小さいデータベースサイズであり、データベース自体のサイズによるパフォーマンスの違いは見られません。

ただし、パフォーマンスが問題であると思われる場合は、DBクエリを確認し、その情報が不要なクエリでBLOB行を「選択」していないことを確認してください。データベースから必要以上の行を返すと(ハードドライブから必要以上に多くのデータを読み取ると考えてください)、パフォーマンスの問題が発生する可能性がはるかに高くなります。

バックアップの合計サイズに非常に厳しい制限がない限り、それらを分離することの長所はわかりません。アプリの奇妙な場所に複雑さが加わるだけです。

于 2011-04-23T22:00:04.477 に答える