我编译了sqlite.so以在android应用中使用。
我以前使用过sqlite3.18
,现在更新为sqlite3.25
。
我观察到的是sqlite3.25
比sqlite3.18
慢得多。
相同的SQL,例如"select * form table order by ..."
sqlite3.25
用了1000秒,而sqlite3.18
只用了100毫秒。为什么?
主要修改代码如下:
更改codecext.c
rc = sqlite3BtreeBeginTrans(pbt, 1);
-> rc = sqlite3BtreeBeginTrans(pbt, 1,0);
rc = sqlite3PagerGet(pPager, n, &pPage);
-> rc = sqlite3PagerGet(pPager, n, &pPage,0);
sqlite3BtreeRollback(pbt,rc);
-> sqlite3BtreeRollback(pbt,rc,0);
jni / Android.mk
LOCAL_LDLIBS += -llog --> LOCAL_LDLIBS += -llog -fPIC