私は Android マッピング アプリケーションに取り組んでいます。
MBTiles を使用して、オフライン表示用にタイルを保存しています。すべてがうまく機能しますが、データベースのサイズが大きくなるにつれてパフォーマンスが大幅に低下します。タイルのサイズはさまざまですが、通常、サイズは約 6 kb で、ブロブとして保存されます。Mapbox などで使用されているスキーマをインデックスなどで複製しました。現在、データベースのサイズは約 40 MB で、読み取りには約 5 秒かかります。私はこれまでかなりの調査を行ってきましたが、それが機能すること以外は何も見つかりませんでした。この SQLite ページを参照してください。
私は何を間違っていますか?これは Android の制限ですか?
質問する
1531 次
1 に答える
2
それを見つけた!テーブル インデックスは適用されませんでした。execSql 経由で送信された CREATE SQL には、セミコロンで区切られた 2 つのステートメントが含まれていました。1 つはテーブルを作成し、もう 1 つは関連付けられたインデックスを作成します。明らかに、最初の (CREATE TABLE) ステートメントのみが実際に実行されたため、2 番目の (CREATE INDEX) ステートメントは実行されませんでした。adbシェルでsqlite3ユーティリティを使用して、これを見つけることができました。.indices マップを実行しても何も返されませんでした。実際にインデックスを作成するように CREATE スクリプトを変更した後、VOILA! 超高速クエリ!
于 2013-04-25T17:28:10.340 に答える