Si una columna está marcada INTEGER PRIMARY KEY, en realidad es aproximadamente el doble de rápido que una búsqueda similar realizada al especificar cualquier otra PRIMARY KEY o valor indexado . Esto es porque:
... todas las filas dentro de las tablas SQLite tienen una clave de entero con signo de 64 bits que identifica de forma exclusiva la fila dentro de su tabla ... La búsqueda de un registro con un rowid específico, o para todos los registros con rowids dentro de un rango especificado es aproximadamente el doble de rápido como una búsqueda similar realizada especificando cualquier otra CLAVE PRIMARIA o valor indexado.
Con una excepción a continuación, si una tabla de rowid tiene una clave primaria que consiste en una sola columna y el tipo declarado de esa columna es "INTEGER" en cualquier combinación de mayúsculas y minúsculas, entonces la columna se convierte en un alias para el rowid.
Dicha columna generalmente se denomina "clave primaria entera". Una columna PRIMARY KEY solo se convierte en una clave primaria entera si el nombre de tipo declarado es exactamente "INTEGER". Otros nombres de tipo entero como "INT" o "BIGINT" o "SHORT INTEGER" o "UNSIGNED INTEGER" hacen que la columna de clave primaria se comporte como una columna de tabla ordinaria con afinidad de enteros y un índice único, no como un alias para el rowid.