For small-sized publicly facing websites using a UNIQUE index on an email_address field would help speed up queries.
SELECT * FROM users
WHERE email_address = ?
AND hash_password = ?
For a large scale public-facing website this seems far too simplistic.
What are some of the characteristics of the database architecture used by much larger, highly trafficked websites for the specific task of authentication of unique emails?
What is the problem that you are facing?
You should have indexes and keys no matter how many rows you have/queries you do. If you have that – you should be fine for a regular page/app.
Monitor the performance. When your user base grows and you start experiencing problems with performance – identify them and deal with the thing that’s slowing you down.
Usually it’s not the volume, but complexity, that brings performance down. Or more like
volume*complexity. So if you have simple system – you should be fine.