No, that order doesn’t matter (or at least: shouldn’t matter).
Any decent query optimizer will look at all the parts of the WHERE
clause and figure out the most efficient way to satisfy that query.
I know the SQL Server query optimizer will pick a suitable index – no matter which order you have your two conditions in. I assume other RDBMS will have similar strategies.
What does matter is whether or not you have a suitable index for this!
In the case of SQL Server, it will likely use an index if you have:
- an index on
(LastName, FirstName)
- an index on
(FirstName, LastName)
- an index on just
(LastName)
, or just(FirstName)
(or both)
On the other hand – again for SQL Server – if you use SELECT *
to grab all columns from a table, and the table is rather small, then there’s a good chance the query optimizer will just do a table (or clustered index) scan instead of using an index (because the lookup into the full data page to get all other columns just gets too expensive very quickly).