This is a huge topic, but it is also the most important "performance" issue.
The main lesson for a novice is to learn of "composite" indexes. Here's a quick example:
INDEX(last_name, first_name)
is excellent for these:
WHERE last_name = '...'
WHERE first_name = '...' AND last_name = '...' -- (order in WHERE does not matter)
but not for
WHERE first_name = '...' -- order in INDEX _does_ matter
WHERE last_name = '...' OR first_name = '...' -- "OR" is a killer