Cosa devo chiedere in un'intervista a MySQL DBA?


9

Sono uno sviluppatore di software e sto aiutando il mio team ad assumere un DBA MySQL. Le principali sfide che stiamo affrontando sono:

  • Query e prestazioni più lente a causa di Hibernate.

  • Gestione del database (backup, tuning, patch, sicurezza).

  • Scalabilità dovuta all'aumento dei dati da nuove fonti di dati e all'accumulo di dati più vecchi.

  • Abbiamo in programma di iniziare il data mining e il data warehousing in futuro. Non so come, ma questa è la direzione.

Di solito abbiamo casi di programmazione in cui chiediamo agli sviluppatori di creare qualcosa per un'intervista, ma è un po 'difficile fare un'intervista DBA allo stesso modo.

Puoi dare suggerimenti su come dovrebbe essere condotto il colloquio?


1
Sembra che questo sarebbe probabilmente meglio di Programmers.Stackexchange, ma sono nuovo di questa community, quindi non
crederci

Qualcuno per favore proteggi questa domanda. Queste sono ottime risposte !!!
RolandoMySQLDBA,

Wow! sei riuscito a trovare un DBA MySQL? Buon lavoro!
Jonathan,

@RolandoMySQLDBA flag it next time;)
jcolebrand

Risposte:


11

Non un elenco completo, ma un elenco approssimativo di cose che vorrei provare a coprire. Dipende anche dal fatto che saranno i primi "veri" DBA o in un team DBA. Se anche il DBA è responsabile per le macchine o solo per il database. eccetera.

  • quale configurazione RAID dovrebbe essere usata
  • strategie di backup per database.
  • Cose specifiche di MySQL come le differenze tra MyISAM e InnoDB
  • strategie di backup e ripristino
  • Consenti loro di eseguire alcune query SQL e alcune ottimizzazioni (utilizzo di spiegazione ecc. Anche quando si utilizza l'ibernazione. A volte è utile ignorare l'ibernazione per ottenere prestazioni)
  • ho menzionato le strategie di backup
  • Per la scalabilità, un DBA dovrebbe conoscere le diverse modalità di replica (RBR, SBR, replica in modalità mista, manutenzione della replica come l'osservazione del ritardo di replica e la manutenzione dei binlog)
  • Sintonizzazione InnoDB
  • Che tipo di file viene scritto dal DB (ad esempio, ibdata e file di registro) e come possono essere organizzati (ad esempio, un file ibdata per tabella, spostarli su partizioni diverse, compressione InnoDB)
  • Discutere gli strumenti di monitoraggio. Che cosa stai usando, hanno esperienza con quello strumento o uno simile?
  • Esaminerei anche strumenti di sistema come iostat / memstat / vmstat / qualunque cosa il tuo sistema operativo fornisca. Dai loro un sistema con qualche carico e lascia che trovino la causa
  • E forse discutere problemi nel backup di MySQL e soprattutto ripristinare ;-)

Sono sicuro che altri qui possono estendere questo elenco


Ehilà Johannes;) Mi piace il focus sul backup / ripristino - questo è davvero ciò che conta. Mi piacerebbe vedere qualcuno dare un confronto MyISAM / InnoDB con cui sono d'accordo.
Morgan Tocker,

Ottima risposta per problemi MySQL e non MySQL. +1 !!!
RolandoMySQLDBA,

Pollice in su! Potresti aggiungere qualcosa riguardo le strategie di backup + ripristino a quell'elenco! ;-)
Marian,

6

Ne ho scritto poco fa , dopo aver contribuito al processo di intervista a Percona.

Penso che per valutare qualcuno, devi provare e fargli fare quello che farebbero nella normale attività quotidiana. Domande casuali come "Che cos'è un tipo di dati seriale in MySQL?" o domande di intelligence come "perché i buchi dell'uomo sono rotondi?" non raggiungere questo obiettivo.

Vuoi anche assicurarti di dare a tutti lo stesso test. Se hai un'intervista a conversazione aperta, solo le persone più sicure e (leggermente manipolative) si distingueranno, in quanto possono aggirare sottilmente le tue domande e trasformarle in quelle a cui sono bravi a rispondere. Non ti accorgerai sempre quando questo accade, ma spesso contiene qualcosa del tipo "quando ho iniziato come DBA avevamo 2 MB di RAM e ho usato nastri ... blah blah blah": P

Detto questo, ecco il mio elenco standard di domande:

  • Descrivere il processo con cui funziona la replica di MySQL?
  • Cosa significa in pratica il componente D di ACID?
  • Cosa cambia innodb_flush_method = O_DIRECT? (Fai attenzione con questo: la comprensione comune di questo è spesso sbagliata .)
  • Supponiamo che scriva una query del tipo "INSERT INTO my_table (a, b) VALUES (1,2)". Descrivimi nel modo più dettagliato possibile ciò che accade all'interno di MySQL.

+1 per un po 'di domande trivia casuali che non verificano correttamente le abilità.
Derek Downey,

3
Se li testerai su cosa faranno ogni giorno, sarà "libro aperto"? Voglio dire, nei miei corsi di laurea, alcuni degli insegnanti hanno insistito affinché tu memorizzassi tutto, mentre altri erano realistici - nel mondo reale, hai manuali di riferimento da consultare; la parte importante era sapere dove trovare la risposta, a volte anche più che pensare di conoscere la risposta e sbagliarsi. (e in alcuni casi, le cose cambiano, quindi è importante controllare i documenti per la specifica versione del software)
Joe,

+1 per libro aperto. Se devi fare un libro chiuso, potrebbe indicare che le tue domande sono banali.
Morgan Tocker,

Leggi il tuo articolo e la tua risposta. Whoa !!! Grandi domande. Mi piacerebbe essere volare sul muro e guardare cosa succede quando ad alcuni vengono poste domande come queste. Dovrei usare queste domande quando intervista io stesso i candidati. Grazie alla grande !!! +1 !!!
RolandoMySQLDBA,

6

Suggerirei di guardare anche alcune liste già stabilite riguardo alle interviste DBA:

  • Le 10 principali domande di intervista DBA a SQL Server - dal nostro Brent Ozar

    • domande preferite:
    • "Puoi darmi riferimenti da altri DBA e sviluppatori che non sono nella tua azienda?"
    • "Un project manager ha bisogno di un nuovo SQL Server. Cosa le chiedi?"
  • Domande di intervista alla DBA per ragazzi - del nostro Thomas LaRock

    • domanda preferita: "Se ti chiedessi di imparare a fare una query più velocemente, dove andresti?"
  • Domande sullo screening del database - di Grant Fritchey

    • domanda preferita: "Sei il DBA. Il telefono squilla. Uno degli utenti è in linea. Dicono" Il database è lento. " Poi riattaccano. Che cosa fai? "

Sono tutti grandi scrittori di SQL Server. So che alcune delle domande potrebbero essere orientate a SQL Server, ma la maggior parte non lo è e può essere utilizzata in un'intervista DBA generale.


1
Potresti forse aggiungere la tua domanda preferita da ogni elenco qui? Ciò darebbe a questa risposta un valore molto maggiore.
Nick Chammas,

La mia motivazione principale era anche vedere come questi argomenti dovevano essere testati (cioè chiedere informazioni sulla replica o consegnare loro un sistema di test per configurarlo). Sto esaminando attentamente gli elenchi e suppongo che le domande generali a livello di DBA non mi troverebbero un buon candidato specifico per MySQL.
geoaxis,

1
@Nick: grazie per la nota, aggiornata la risposta. Geoaxis - un buon DBA di qualsiasi sapore sarà in grado di catturare le complessità di MySQL. Ad esempio: quando assumi uno sviluppatore Java fai solo domande tecniche rigorose sulla libreria Java o anche domande di programmazione generale?
Marian,

5

Anche se sono d'accordo sul fatto che le molte domande di interviste apparentemente casuali (ad esempio, quella di tombino) non sono davvero così utili ... (tranne, forse per un designer industriale, e solo per quel caso).

Una volta superato l'aspetto curioso di molti di essi, sono destinati a essere cose a cui non conosci la risposta, quindi dovrai descrivere come faresti per trovare la risposta. O no. Per esempio:

  • inventare qualcosa di plausibile e / o provare a fare cazzate. (potrebbe essere utile per vendite e marketing? qualsiasi altro campo, non assumere.)
  • stimalo sulla base di altre informazioni
  • spiega come ottenere le informazioni necessarie per risolvere il problema

...eccetera.

Quando in passato sono stato incaricato del processo di assunzione, provo a fare un'intervista telefonica non programmata da 5 a 15 minuti (basta chiamarli, come se potessero darti un paio di minuti ... non tutti potevano, dato che alcuni erano al lavoro che stavano pianificando di lasciare) ... solo per valutare quanto penso stiano facendo cazzate sul loro curriculum.

Ad esempio, quando stavamo assumendo un programmatore PL / SQL senior, chiedevo loro quali fossero le parti di un blocco PL / SQL. In questi giorni, arriva la prima cosa su Google ... che non era il caso nel 2003. La maggior parte delle persone che abbiamo intervistato potrebbe aver usato Oracle prima, potrebbe aver scritto SQL per Oracle ... ma se tu non posso darmi un indizio che tu sappia che aspetto ha un blocco PL / SQL, non sei pronto per un lavoro programmatore PL / SQL senior.

...

Detto questo, la mia domanda di riferimento per qualsiasi colloquio di persona è:

Star Wars o Star Trek?

In parte, puoi vedere come gestiscono una situazione in cui non esiste una risposta migliore, se sono diplomatici nella loro risposta o se pensano fuori dagli schemi (ad esempio, Dr. Who o Firefly sono risposte valide). Dove attualmente lavoro (un laboratorio di fisica spaziale), dicendo che non hai mai visto nessuno dei due potrebbe essere un fallimento se non sei straniero. Dire che non ti piace neanche e spiegare perché con una buona ragione sarebbe un passaggio, però. Smanettare su uno dei due potrebbe essere ancora un fallimento (poiché nessuno vuole lavorare con quella persona)


È importante avere le domande personali subito per vedere se sarebbero adatte alla squadra. +1
Derek Downey,

@DTest: ma devi stare attento alle domande personali ... ci sono molte classi di domande che non ti è consentito porre, almeno non negli Stati Uniti: eeoc.gov/facts/qanda.html
Joe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.