Which SQL-query will be executed with less time — query with WHERE-clause or without, when:
- WHERE-clause deals with indexed field (e.g. primary key field)
- WHERE-clause deals with non-indexed field
I suppose when we’re working with indexed fields, thus query with WHERE will be faster. Am I right?
As has been mentioned there is no fixed answer to this. It all depends on the particular context. But just for the sake of an answer. Take this simple query:
To process this query without an index, every column, last_name must be checked for every row in the table (full table scan).
With an index, you could just follow a B-tree data structure until ‘Smith’ was found.
With a non index the worst case looks linear (n), whereas with a B-tree it would be log n, hence computationally less expensive.