Android sqlite index на андроид 2.3 - PullRequest
2 голосов
/ 22 марта 2012

У меня два устройства: HTC Desire с Android 2.2 Froyo и HTC Evo 3D с Android 2.3 Gingerbread.

Мой sql запрос:

SELECT DISTINCT Album.titre, Serie.nbAlbum 
  FROM Serie, Album 
  WHERE Serie.titre=Album.serieTitre AND Album.shz=1 

с неиндексированной базой данных:

htc evo 3d : Everything works fine, the query runs in ~1 second.
htc desire : This is much longer! about 30 - 50 seconds.

Итак, я попытался проиндексировать свою таблицу с помощью:

CREATE INDEX IDX_ALBUM_SHZ on ALBUM (shz)
CREATE INDEX IDX_ALBUM_SERIETITRE on ALBUM(serieTitre)

но результат был обратным!

HTC Desire : Really fast, ~1 second.
HTC Evo 3d : Very slow, more than 20 seconds

У вас есть представление о том, что происходит?
Это было значительное изменение в том, как управлять sqlite между Froyo и пряники?

Как решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 23 марта 2012

Я думаю, что это происходит из-за разницы в версиях Android.С 2.2 до 2.3 было много изменений в производительности.У меня есть 2 устройства для разработки: одно работает на 2.2.2, а другое - на 2.3.3.Исполнение сильно отличается.Наиболее вероятной причиной является то, что 2.3 работает в файловой системе ext4 (froyo работает в YAFFS) и работает быстрее)

0 голосов
/ 30 марта 2012

Если решения нет, я решил свою проблему с помощью простой проверки версии при создании / импорте базы данных и соответственно добавлял / удалял индексы.

Однако я остался открытым для более умных!

0 голосов
/ 22 марта 2012

Скорее всего, это связано с файловыми системами, которые используют эти телефоны.Насколько я знаю, в большинстве телефонов Samsung используется файловая система RFS, которая позволяет сократить время доступа к диску.И телефоны HTC в основном используют ext3 (насколько я знаю).Я не могу думать ни о какой другой разнице в вашем случае.

...