我有两台设备:搭载 Android 2.2 Froyo 的 HTC Desire 和搭载 Android 2.3 Gingerbread 的 HTC Evo 3D。
我的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
你知道发生了什么吗?
froyo 和 gingerbread 在如何管理 sqlite 方面有重大变化吗?
如何解决这个问题?
最佳答案
这很可能与这些手机使用的文件系统有关。据我所知,大多数三星手机都使用 RFS 文件系统,它在磁盘访问时间性能方面微不足道。而 HTC 手机大多使用 ext3(据我所知)。我想不出你的情况有任何其他区别。
关于Android 2.3 上的 Android sqlite 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9825287/