Did you read <https://sqlite.org/rowidtable.html>? > if col is integer primary key,does this select statement do a binary search in index-table for rowid first No. The rowid is the key to the table row in the b-tree. In the case you describe above the rowid is used to traverse the table b-tree directly. Additional indexes contain the "key columns" and the rowid. The key columns are used to traverse the index b-tree to find the rowid of the row in the underlying table, and then that rowid is used directly to traverse the table b-tree to locate the row data. See also <https://sqlite.org/fileformat.html>