Database Administrator
What is an index, and why can adding too many indexes to a table actually hurt?
What the interviewer is looking for
- This question tests performance tuning. Reads execution plans, uses indexes wisely, finds locking and resource bottlenecks, and measures before and after.
- Strong answers: Index speeds lookups like a book index; too many slow down writes, use storage and memory, and add maintenance and planning overhead.
- Likely follow-up: How would you find indexes that are not being used?
Another way it may be asked: A developer wants to add an index on every column to make things fast. What would you tell them?
A structure to follow: Answer, explain, example, limits
- Step 1
Answer
Give your direct answer in the first sentence so the interviewer knows where you are going.
- Step 2
Explain
Say how it works or why you would do it that way, in plain words before jargon.
- Step 3
Example
Anchor it in something you have actually done or seen, with the detail that shows hands-on experience.
- Step 4
Limits
Say when your approach would not be the right one. It shows judgement.
This is guidance on shape, not a script. Use your own real experience and facts; never invent details to fill a gap. See the STAR guide and answer frameworks.
Common slips
- Reciting a definition without showing you have applied it.
- Using terms you cannot explain if asked a level deeper.
- Claiming experience beyond what you can discuss in detail.
How to practise it
Say the answer in 90 seconds, then answer the follow-up as if it were a new question.
Related questions
- A query that used to take a second now takes a minute. Walk me through how you would figure out why.
- What is the difference between a full, an incremental and a point-in-time backup, and when would you need point-in-time recovery?
- A developer asks for full admin access to the production database to debug an issue. How do you respond?
- How does replication work in a database you know well, and what can go wrong with replica lag?
- How would you add a column or change a large table in production without locking it and causing downtime?