Индекс Android sqlite на Android 2.3

У меня два устройства: 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 и gingerbread?

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


person Alix Bloom    schedule 22.03.2012    source источник


Ответы (3)


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

person Behlül    schedule 22.03.2012
comment
Возможно ли, что файловая система влияет на индекс sqlite? это кажется странным. Более того, я смог протестировать на сони S табе, галакси табе 10.1 и асус трансформерах любых в 3.2 все работает идеально, с индексами и без. - person Alix Bloom; 23.03.2012

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

person redandblack    schedule 23.03.2012
comment
Тем не менее, с индексами froyo намного быстрее, чем пряники в моем случае - person Alix Bloom; 23.03.2012

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

Тем не менее, я остаюсь открытым для умнее!

person Alix Bloom    schedule 30.03.2012