What should I ask at a MySQL DBA interview?
Not a complete list, but rough list of things I would try to cover. It also depends on whether they will be the first "true" DBA or in a DBA team. Whether the DBA is responsible for the machines, too, or only the database on top of that. etc.
- what RAID configuration should be used
- backup strategies for databases.
- MySQL specific things like differences between MyISAM and InnoDB
- backup strategies and recovery
- Let them do some SQL queries and some query optimization (usage of explain etc. even when using hibernate. Sometimes it's good to bypass hibernate to gain performance)
- did I mention backup strategies
- For scalability a DBA should know about different replication modes (RBR, SBR, mixed mode replication, replication maintenance such as observing replication lag and binlog maintenance)
- InnoDB tuning
- What kind of files are being written by the DB (eg, ibdata and log files) and how they can be arranged (eg, one ibdata file per table, move them around on different partitions, InnoDB compression)
- Discuss monitoring tools. What are you using, do they have experience with that tool or a similar one?
- I'd also look into system tools like iostat/memstat/vmstat/whatever your OS provides. Give them a system with some load and let them find the cause
- And maybe discuss issues in MySQL backup and especially restore ;-)
I'm sure others here can extend this list
I'd suggest looking also at some already established lists regarding DBA interviews:
Top 10 SQL Server DBA Interview Questions - by our own Brent Ozar
- favorite questions:
- "Can you give me references from other DBAs and developers who aren’t at your company?"
- "A project manager needs a new SQL Server. What do you ask her?"
Junior DBA Interview Questions - by our own Thomas LaRock
- favorite question: "If I asked you to learn how to make a query faster, where would you go?"
Database Screening Questions - by Grant Fritchey
- favorite question: "You’re the DBA. The phone rings. One of the users is on the line. They say “The database is slow.” Then they hang up. What do you do?"
They are all great SQL Server writers. I know that some of the questions might be SQL Server oriented, but most are not and can be used in a general DBA interview.
I wrote about this a while ago, after I contributed to the interview process at Percona.
I think that to assess someone, you have to try and make them do what they would be doing in regular day-to-day activity. Random questions like "What is a serial data type in MySQL?" or intelligence questions like "why are man holes round?" do not achieve this.
You also want to make sure that you give everyone the same test. If you have an open-ended conversation only interview, the more confident and (slightly manipulative) people will stand out, as they can subtly skirt around your questions and change them into ones they are good at answering. You won't always realize when this is happening but it often contains something like "when I started as a DBA we had 2MB of RAM, and used tapes.. blah blah blah" :P
Having said that, here's my standard list of questions:
- Describe the process by which MySQL replication works?
- What does the D component of ACID mean in practical terms?
- What does innodb_flush_method=O_DIRECT change? (Be careful with this one: the common understanding of this is often wrong.)
- Say I write a query like "INSERT INTO my_table (a,b) VALUES (1,2)". Describe to me in as much detail as you can what happens inside MySQL.