Thank you Simon. But I am still uncertain if it is a good way to replace column 'c'.
CREATE TABLE t2(a INTEGER, b INTEGER, d INTEGER); or: CREATE TABLE t2(a INTEGER, b INTEGER, c TEXT, d INTEGER); and then CREATE INDEX t2d ON t2(d); SELECT count(*) FROM t2 WHERE d = xx; I find it is indeed faster than t2(c). Or in another word, if a TEXT column has similar meaning with an INTEGER column in my applications,(such as use userID instead of userName, still the way that the data works in my head:) ) is it recommended to use INTEGER one in order to get a less index pages? One more small question: > For instance, once SQLite has found the right entry in the index it might > need to look up that entry in the table to retrieve values which are not > in the index. I understand the execution process you said. And in my opinion, sqlite should fetch pages when looking up the entry both in the index and then in the table. But I only found pages with '0x0A' and '0x02' when getPageNormal() is called during the time running select SQL. Could you give me any advises to find the code when sqlite fetching the '0x0D' pages? Thanks. -- Sent from: http://sqlite.1065341.n5.nabble.com/ _______________________________________________ sqlite-users mailing list email@example.com http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users