Apa yang harus saya tanyakan pada wawancara DBA MySQL?

9

Saya seorang pengembang perangkat lunak dan membantu tim saya menyewa DBA MySQL. Tantangan inti yang kami hadapi adalah:

  • Permintaan dan kinerja lebih lambat karena Hibernate.

  • Manajemen basis data (cadangan, penyetelan, tambalan, keamanan).

  • Skalabilitas karena peningkatan data dari sumber data baru dan akumulasi data yang lebih lama.

  • Kami berencana untuk memulai penambangan data dan penyimpanan data di masa mendatang. Tidak yakin bagaimana tapi itu adalah arahnya.

Kami biasanya memiliki kasus pemrograman di mana kami meminta pengembang untuk membuat sesuatu untuk wawancara, tetapi agak sulit untuk melakukan wawancara DBA dengan cara yang sama.

Bisakah Anda memberikan saran tentang bagaimana wawancara harus dilakukan?

geoaksis
sumber
1
Sepertinya ini mungkin akan lebih baik dari Programmer.
Stackexchange
Seseorang tolong lindungi pertanyaan ini. Ini adalah jawaban yang bagus !!!
RolandoMySQLDBA
Wow! Anda berhasil menemukan DBA MySQL? Kerja bagus!
Jonathan
@RolandoMySQLDBA menandainya lain kali;)
jcolebrand

Jawaban:

11

Bukan daftar lengkap, tetapi daftar kasar hal-hal yang akan saya coba sampaikan. Itu juga tergantung pada apakah mereka akan menjadi DBA "benar" pertama atau dalam tim DBA. Apakah DBA bertanggung jawab atas mesin, juga, atau hanya database di atas itu. dll.

  • konfigurasi RAID apa yang harus digunakan
  • strategi cadangan untuk basis data.
  • Hal-hal spesifik MySQL seperti perbedaan antara MyISAM dan InnoDB
  • strategi cadangan dan pemulihan
  • Biarkan mereka melakukan beberapa query SQL dan beberapa optimasi query (penggunaan menjelaskan dll bahkan ketika menggunakan hibernate. Kadang-kadang ada baiknya untuk memotong hibernasi untuk mendapatkan kinerja)
  • apakah saya menyebutkan strategi cadangan
  • Untuk skalabilitas, DBA harus tahu tentang mode replikasi yang berbeda (RBR, SBR, replikasi mode campuran, pemeliharaan replikasi seperti mengamati lag replikasi dan pemeliharaan binlog)
  • Penyesuaian InnoDB
  • Jenis file apa yang sedang ditulis oleh DB (misalnya, file ibdata dan log) dan bagaimana mereka dapat diatur (misalnya, satu file ibdata per tabel, pindahkan di sekitar partisi yang berbeda, kompresi InnoDB)
  • Diskusikan alat pemantauan. Apa yang Anda gunakan, apakah mereka memiliki pengalaman dengan alat itu atau yang serupa?
  • Saya juga akan melihat alat sistem seperti iostat / memstat / vmstat / apa pun yang disediakan OS Anda. Beri mereka sistem dengan beban dan biarkan mereka menemukan penyebabnya
  • Dan mungkin mendiskusikan masalah dalam cadangan MySQL dan terutama mengembalikan ;-)

Saya yakin orang lain di sini dapat memperpanjang daftar ini

johannes
sumber
Hai, Johannes;) Saya suka backup / restore fokus - sungguh itulah yang penting. Akan senang melihat seseorang memberikan perbandingan MyISAM / InnoDB yang saya setujui.
Morgan Tocker
Jawaban yang bagus untuk masalah MySQL dan non-MySQL. +1 !!!
RolandoMySQLDBA
Jempol! Anda dapat menambahkan sesuatu tentang strategi backup + restore ke daftar itu! ;-)
Marian
6

Saya menulis tentang ini beberapa waktu yang lalu , setelah saya berkontribusi pada proses wawancara di Percona.

Saya pikir untuk menilai seseorang, Anda harus mencoba dan membuat mereka melakukan apa yang akan mereka lakukan dalam kegiatan rutin sehari-hari. Pertanyaan acak seperti "Apa itu tipe data serial di MySQL?" atau pertanyaan intelijen seperti "mengapa lubang manusia bulat?" jangan mencapai ini.

Anda juga ingin memastikan bahwa Anda memberi semua orang tes yang sama. Jika Anda memiliki wawancara terbuka dan hanya wawancara, orang-orang yang lebih percaya diri dan (sedikit manipulatif) akan menonjol, karena mereka dapat secara halus menyelinap di sekitar pertanyaan Anda dan mengubahnya menjadi yang mereka pandai menjawab. Anda tidak akan selalu menyadari ketika ini terjadi tetapi sering mengandung sesuatu seperti "ketika saya mulai sebagai DBA kami memiliki 2MB RAM, dan menggunakan kaset .. blah blah blah": P

Karena itu, inilah daftar pertanyaan standar saya:

  • Jelaskan proses replikasi MySQL bekerja?
  • Apa arti komponen D dari ACID dalam istilah praktis?
  • Apa yang innodb_flush_method = O_DIRECT berubah? (Berhati-hatilah dengan yang satu ini: pemahaman umum tentang hal ini sering salah .)
  • Katakanlah saya menulis permintaan seperti "INSERT INTO my_table (a, b) VALUES (1,2)". Jelaskan kepada saya sedetail mungkin apa yang terjadi di dalam MySQL.
Morgan Tocker
sumber
Memberi +1 untuk sedikit tentang pertanyaan acak seperti-trivia yang tidak menguji kemampuan dengan benar.
Derek Downey
3
Jika Anda akan menguji mereka tentang apa yang akan mereka lakukan sehari-hari, apakah itu akan menjadi "buku terbuka"? Maksud saya, di kelas sarjana saya, beberapa guru bersikeras agar Anda menghafal segalanya, sementara yang lain realistis - di dunia nyata, Anda memiliki buku pedoman referensi untuk dikonsultasikan; bagian yang penting adalah mengetahui di mana menemukan jawabannya, kadang-kadang bahkan lebih daripada berpikir bahwa Anda tahu jawabannya, dan salah. (dan dalam beberapa kasus, banyak hal berubah, jadi memeriksa dokumen untuk versi perangkat lunak tertentu adalah penting)
Joe
+1 untuk buku terbuka. Jika Anda harus melakukan buku tertutup, itu mungkin menunjukkan pertanyaan Anda adalah hal-hal sepele.
Morgan Tocker
Baca artikel Anda dan jawaban Anda. Wah !!! Pertanyaan besar Saya ingin terbang di dinding dan menonton apa yang terjadi ketika beberapa orang mengajukan pertanyaan seperti ini. Saya harus menggunakan pertanyaan ini ketika mewawancarai kandidat. Terima kasih banyak !!! +1 !!!
RolandoMySQLDBA
6

Saya sarankan melihat juga pada beberapa daftar yang sudah ada mengenai wawancara DBA:

  • Top 10 Pertanyaan Wawancara SQL Server DBA - oleh Brent Ozar kita sendiri

    • pertanyaan favorit:
    • "Bisakah Anda memberi saya referensi dari para DBA dan pengembang lain yang tidak ada di perusahaan Anda?"
    • "Seorang manajer proyek membutuhkan SQL Server baru. Apa yang Anda tanyakan padanya?"
  • Pertanyaan Wawancara Junior DBA - oleh Thomas LaRock kita sendiri

    • pertanyaan favorit: "Jika saya meminta Anda belajar cara membuat kueri lebih cepat, ke mana Anda akan pergi?"
  • Pertanyaan Pemutaran Basis Data - oleh Grant Fritchey

    • pertanyaan favorit: "Anda DBA. Telepon berdering. Salah satu pengguna sedang menelepon. Mereka mengatakan" Basis data lambat. " Lalu mereka menutup telepon. Apa yang kamu lakukan? "

Mereka semua adalah penulis SQL Server yang hebat. Saya tahu bahwa beberapa pertanyaan mungkin berorientasi SQL Server, tetapi sebagian besar tidak dan dapat digunakan dalam wawancara DBA umum.

Marian
sumber
1
Bisakah Anda menambahkan pertanyaan favorit dari setiap daftar di sini? Itu akan memberikan jawaban ini nilai lebih banyak.
Nick Chammas
Motivasi utama saya adalah juga untuk melihat bagaimana topik-topik ini harus diuji (yaitu bertanya tentang replikasi atau menyerahkan sistem pengujian bagi mereka untuk mengaturnya). Saya akan memeriksa daftar dan saya kira pertanyaan tingkat DBA umum tidak akan menemukan saya yang baik khusus MySQL.
geoaxis
1
@Nick: terima kasih atas catatannya, perbarui jawabannya. Geoaxis - DBA yang baik dari rasa apa pun akan dapat menangkap seluk-beluk MySQL. Misalnya: saat mempekerjakan pengembang Java, apakah Anda hanya menanyakan pertanyaan teknis Java library yang ketat atau juga pertanyaan pemrograman umum?
Marian
5

Walaupun saya setuju bahwa banyak pertanyaan wawancara yang tampaknya acak (mis., Sampul manhole), tidak terlalu berguna ... (kecuali, mungkin untuk desainer industri, dan hanya untuk satu kasus).

Setelah Anda melewati aspek trivia dari banyak dari mereka, mereka dimaksudkan untuk menjadi hal yang tidak Anda lakukan tahu jawabannya, dan karenanya Anda harus menjelaskan bagaimana Anda akan menemukan jawabannya. Atau tidak. Misalnya:

  • membuat sesuatu yang masuk akal dan / atau mencoba omong kosong jalan Anda. (mungkin berguna untuk penjualan & pemasaran? bidang lainnya, jangan rekrut.)
  • memperkirakannya berdasarkan informasi lain
  • jelaskan bagaimana Anda akan mendapatkan informasi yang diperlukan untuk menyelesaikan masalah

... dll.

Ketika saya bertanggung jawab atas proses perekrutan di masa lalu, saya mencoba melakukan wawancara telepon 5 hingga 15 menit yang sepenuhnya tidak terjadwal (cukup hubungi mereka, karena mereka dapat memberi Anda waktu beberapa menit ... tidak semua bisa, karena beberapa di pekerjaan mereka berencana untuk pergi) ... hanya untuk menilai seberapa banyak saya pikir mereka omong kosong pada resume mereka.

Misalnya, ketika kami menyewa seorang programmer PL / SQL senior, saya akan bertanya kepada mereka apa bagian dari blok PL / SQL itu. Hari-hari ini, muncul hal pertama di Google ... itu tidak terjadi pada tahun 2003. Sebagian besar orang yang kami wawancarai mungkin menggunakan Oracle sebelumnya, mereka mungkin telah menulis SQL untuk Oracle ... tetapi jika Anda tidak bisa memberi saya petunjuk bahwa Anda tahu apa yang tampak seperti PL / SQL blok, Anda tidak siap untuk pekerjaan programmer PL / SQL senior.

...

Dan, yang dikatakan, pertanyaan masuk saya untuk wawancara langsung adalah:

Star Wars atau Star Trek?

Sebagian, Anda dapat melihat bagaimana mereka menangani situasi di mana tidak ada jawaban terbaik, jika mereka diplomatis dalam jawaban mereka, atau jika mereka berpikir di luar kotak (misalnya, Dr. Who atau Firefly adalah jawaban yang valid). Di mana saya saat ini bekerja (laboratorium fisika luar angkasa), mengatakan bahwa Anda belum pernah melihat keduanya mungkin gagal kecuali jika Anda adalah orang asing. Mengatakan Anda juga tidak suka, dan menjelaskan mengapa dengan alasan yang baik akan menjadi sebuah lulus. Geeking tentang salah satu terlalu banyak mungkin masih menjadi gagal (karena tidak ada yang ingin bekerja dengan yang orang)

Joe
sumber
Sangat penting untuk memiliki pertanyaan pribadi yang tidak masuk akal untuk melihat apakah itu cocok untuk tim. +1
Derek Downey
@DTest: tetapi Anda harus berhati-hati tentang pertanyaan pribadi ... ada banyak kelas pertanyaan yang tidak boleh Anda tanyakan, setidaknya tidak di AS: eeoc.gov/facts/qanda.html
Joe