Se uma coluna estiver marcada INTEGER PRIMARY KEY, na verdade, será duas vezes mais rápida que uma pesquisa semelhante feita especificando qualquer outra PRIMARY KEY ou valor indexado . Isto é porque:
... todas as linhas nas tabelas SQLite têm uma chave inteira assinada de 64 bits que identifica exclusivamente a linha em sua tabela ... A pesquisa de um registro com um rowid específico ou de todos os registros com rowids dentro de um intervalo especificado é duas vezes mais rápido como uma pesquisa semelhante feita especificando qualquer outro valor PRIMARY KEY ou indexado.
Com uma exceção observada abaixo, se uma tabela rowid tiver uma chave primária que consiste em uma única coluna e o tipo declarado dessa coluna for "INTEGER" em qualquer combinação de maiúsculas e minúsculas, a coluna se tornará um alias para o rowid.
Essa coluna é geralmente chamada de "chave primária inteira". Uma coluna PRIMARY KEY apenas se torna uma chave primária inteira se o nome do tipo declarado for exatamente "INTEGER". Outros nomes de tipos inteiros como "INT" ou "BIGINT" ou "SHORT INTEGER" ou "UNSIGNED INTEGER" fazem com que a coluna da chave primária se comporte como uma coluna de tabela comum com afinidade de número inteiro e um índice exclusivo, não como um alias para o rowid.
Consulte: http://www.sqlite.org/lang_createtable.html#rowid