O co powinienem zapytać podczas wywiadu MySQL DBA?

9

Jestem programistą i pomagam zespołowi w wynajęciu bazy danych MySQL DBA. Główne wyzwania, przed którymi stoimy, to:

  • Wolniejsze zapytania i wydajność dzięki Hibernacji.

  • Zarządzanie bazą danych (kopie zapasowe, strojenie, łatki, bezpieczeństwo).

  • Skalowalność dzięki wzrostowi danych z nowych źródeł danych i gromadzeniu starszych danych.

  • Planujemy rozpocząć eksplorację danych i hurtownię danych w przyszłości. Nie jestem pewien jak, ale w tym kierunku.

Zwykle mamy przypadki programowania, w których prosi się programistów o zbudowanie czegoś na rozmowę kwalifikacyjną, ale trudno jest przeprowadzić wywiad DBA w ten sam sposób.

Czy możesz podać sugestie dotyczące sposobu przeprowadzenia wywiadu?

geoaksja
źródło
1
Wygląda na to, że prawdopodobnie byłby lepszy od Programmers.Stackexchange, ale jestem nowy w tej społeczności, więc nie
wierz
Ktoś, proszę, chroń to pytanie. To są świetne odpowiedzi !!!
RolandoMySQLDBA
Łał! udało ci się znaleźć MySQL DBA? Dobra robota!
Jonathan
@RolandoMySQLDBA oflaguj to następnym razem;)
jcolebrand

Odpowiedzi:

11

Nie jest to pełna lista, ale przybliżona lista rzeczy, które starałbym się opisać. Zależy to również od tego, czy będą to pierwsze „prawdziwe” DBA, czy w zespole DBA. Czy DBA jest również odpowiedzialne za maszyny, czy tylko za bazę danych. itp.

  • jakiej konfiguracji RAID należy użyć
  • strategie tworzenia kopii zapasowych baz danych.
  • Rzeczy specyficzne dla MySQL, takie jak różnice między MyISAM i InnoDB
  • strategie tworzenia kopii zapasowych i odzyskiwanie
  • Pozwól im wykonać kilka zapytań SQL i trochę optymalizacji zapytań (użycie wyjaśnienia itp. Nawet podczas hibernacji. Czasami dobrze jest ominąć hibernację, aby uzyskać wydajność)
  • czy wspomniałem o strategiach tworzenia kopii zapasowych
  • Aby uzyskać skalowalność, DBA powinien wiedzieć o różnych trybach replikacji (RBR, SBR, replikacja w trybie mieszanym, konserwacja replikacji, taka jak obserwacja opóźnienia replikacji i obsługa binlog)
  • Strojenie InnoDB
  • Jakie pliki są zapisywane przez DB (np. Ibdata i pliki dziennika) i jak można je uporządkować (np. Jeden plik ibdata na tabelę, przenosić je na różnych partycjach, kompresja InnoDB)
  • Omów narzędzia monitorowania. Z czego korzystasz, czy mają doświadczenie z tym narzędziem lub podobnym?
  • Zajrzałbym także do narzędzi systemowych, takich jak iostat / memstat / vmstat / cokolwiek, co zapewnia twój system operacyjny. Daj im system z pewnym obciążeniem i pozwól im znaleźć przyczynę
  • A może dyskutuj o problemach z kopią zapasową MySQL, a zwłaszcza przywracaj ;-)

Jestem pewien, że inni tutaj mogą rozszerzyć tę listę

Johnnes
źródło
Cześć, Johannes;) Lubię skupianie się na przywracaniu / przywracaniu - tak naprawdę to się liczy. Chciałbym zobaczyć, jak ktoś daje porównanie MyISAM / InnoDB, z którym się zgadzam.
Morgan Tocker
Świetna odpowiedź na problemy MySQL i inne niż MySQL. +1 !!!
RolandoMySQLDBA
Kciuk w górę! Możesz dodać coś do strategii tworzenia kopii zapasowych i przywracania do tej listy! ;-)
Marian
6

Pisałem o tym jakiś czas temu , po tym, jak włączyłem się w proces wywiadu w Perconie.

Myślę, że aby kogoś ocenić, musisz spróbować zmusić go do robienia tego, co robiliby w codziennych czynnościach. Losowe pytania, takie jak „Co to jest typ danych szeregowych w MySQL?” lub pytania wywiadowcze, takie jak „dlaczego dziury są okrągłe?” nie osiągaj tego.

Chcesz również upewnić się, że dasz wszystkim ten sam test. Jeśli przeprowadzasz tylko rozmowę z otwartą rozmową, bardziej pewni siebie i (nieco manipulacyjni) ludzie będą się wyróżniać, ponieważ mogą subtelnie omijać twoje pytania i zamieniać je w te, na które dobrze odpowiadają. Nie zawsze zdajesz sobie sprawę, kiedy to się dzieje, ale często zawiera coś takiego: „kiedy zaczynałem jako DBA, mieliśmy 2 MB pamięci RAM i korzystaliśmy z taśm .. bla bla bla”: P

Powiedziawszy to, oto moja standardowa lista pytań:

  • Opisz proces replikacji MySQL?
  • Co w praktyce oznacza składnik D ACID?
  • Co zmienia innodb_flush_method = O_DIRECT? (Ostrożnie z tym: wspólne zrozumienie tego jest często błędne .)
  • Powiedzmy, że piszę zapytanie typu „WSTAWIĆ DO mojej_tabeli (a, b) WARTOŚCI (1,2)”. Opisz mi tak szczegółowo, jak to możliwe, co dzieje się w MySQL.
Morgan Tocker
źródło
+1 za nieco przypadkowe pytania podobne do ciekawostek, które nie testują prawidłowo umiejętności.
Derek Downey
3
Jeśli zamierzasz przetestować ich na tym, co będą robić na co dzień, czy będzie to „otwarta książka”? Mam na myśli, że na moich zajęciach licencjackich kilku nauczycieli nalegało, abyś nauczył się wszystkiego na pamięć, podczas gdy inni byli realistami - w prawdziwym świecie masz podręczniki, z którymi możesz się zapoznać; ważną częścią było wiedzieć, gdzie znaleźć odpowiedź, czasem nawet bardziej niż myślenie, że znasz odpowiedź, i być w błędzie. (a w niektórych przypadkach rzeczy się zmieniają, dlatego ważne jest sprawdzenie dokumentacji dla konkretnej wersji oprogramowania)
Joe
+1 za otwartą książkę. Jeśli musisz zrobić zamkniętą książkę, może to oznaczać, że twoje pytania są trywialne.
Morgan Tocker
Przeczytaj swój artykuł i swoją odpowiedź. Whoa !!! Świetne pytania. Chciałbym latać na ścianie i patrzeć, co się dzieje, gdy ktoś zadaje takie pytania. Powinienem użyć tego pytania podczas przeprowadzania wywiadów z kandydatami. Dziękuję za dużo czasu !!! +1 !!!
RolandoMySQLDBA
6

Sugerowałbym również przyjrzenie się niektórym już ustalonym listom dotyczącym wywiadów DBA:

  • 10 najważniejszych pytań do wywiadu DBA dla programu SQL Server - autorstwa naszego własnego Brenta Ozara

    • ulubione pytania:
    • „Czy możesz podać mi referencje od innych DBA i programistów, którzy nie pracują w Twojej firmie?”
    • „Kierownik projektu potrzebuje nowego serwera SQL. O co ją pytasz?”
  • Pytania do wywiadu DBA dla młodzieży - autorstwa własnego Thomasa LaRocka

    • ulubione pytanie: „Gdybym poprosił cię o nauczenie się, jak zrobić zapytanie szybciej, gdzie byś poszedł?”
  • Pytania do przeglądu baz danych - Grant Fritchey

    • ulubione pytanie: „Jesteś DBA. Telefon dzwoni. Jeden z użytkowników jest na linii. Mówią„ Baza danych jest wolna ”. Potem rozłączają się. Co robisz?

Wszyscy są świetnymi pisarzami SQL Server. Wiem, że niektóre pytania mogą dotyczyć SQL Server, ale większość z nich nie jest i można je wykorzystać w ogólnym wywiadzie dla DBA.

Marian
źródło
1
Czy mógłbyś dodać tutaj swoje ulubione pytanie z każdej listy? To dałoby tej odpowiedzi znacznie większą wartość.
Nick Chammas,
Moją główną motywacją było również sprawdzenie, w jaki sposób te tematy powinny zostać przetestowane (tj. Zapytaj o replikację lub podaj system testowy, aby je skonfigurować). Wchodzę w dokładne listy i myślę, że ogólne pytania na poziomie DBA nie znalazłyby dla mnie dobrego kandydata na MySQL.
geoaksja
1
@Nick: dziękuję za notatkę, zaktualizowałem odpowiedź. Geoaksja - dobry DBA o dowolnym smaku będzie w stanie złapać zawiłości MySQL. Np .: zatrudniając programistę Java, zadajesz tylko ścisłe techniczne pytania dotyczące biblioteki Java lub ogólne pytania dotyczące programowania?
Marian
5

Chociaż zgadzam się, że wiele pozornie przypadkowych pytań do wywiadu (np. Właz pokrywa jedno), nie są tak naprawdę przydatne ... (z wyjątkiem, być może, dla projektanta przemysłowego i tylko dla tej jednej sprawy).

Gdy miniesz aspekt wielu z nich, mają one być rzeczami, na które nie znasz odpowiedzi, więc musisz opisać, w jaki sposób możesz znaleźć odpowiedź. Albo nie. Na przykład:

  • wymyślić coś wiarygodnego i / lub próbować przekląć. (może być przydatny w sprzedaży i marketingu? w jakiejkolwiek innej dziedzinie, nie zatrudniaj).
  • oszacuj na podstawie innych informacji
  • wyjaśnij, w jaki sposób uzyskasz niezbędne informacje do rozwiązania problemu

...itp.

Kiedy w przeszłości byłem odpowiedzialny za proces rekrutacji, staram się przeprowadzić całkowicie nieplanowaną rozmowę telefoniczną trwającą od 5 do 15 minut (po prostu zadzwoń do nich, ponieważ mogliby dać ci kilka minut ... nie wszyscy mogli, bo niektórzy byli w pracy, którą zamierzali odejść) ... tylko po to, żeby ocenić, jak myślę, że wkurzają się po wznowieniu pracy.

Na przykład, kiedy zatrudniliśmy starszego programistę PL / SQL, zapytałbym ich, jakie są części bloku PL / SQL. W dzisiejszych czasach pojawia się pierwsza rzecz w Google ... tak nie było w 2003 roku. Większość osób, z którymi przeprowadziliśmy wywiad, mogła wcześniej korzystać z Oracle, mogliby napisać SQL dla Oracle ... ale jeśli nie mogę dać ci pojęcia, że ​​wiesz, jak wygląda blok PL / SQL, nie jesteś gotowy na stanowisko starszego programisty PL / SQL.

...

Biorąc to pod uwagę, moim głównym pytaniem na każdy osobisty wywiad jest:

Star Wars czy Star Trek?

Po części można zobaczyć, jak radzą sobie z sytuacją, w której nie ma najlepszej odpowiedzi, jeśli są dyplomatyczni w swojej odpowiedzi lub jeśli myślą nieszablonowo (np. Dr. Who lub Firefly są poprawnymi odpowiedziami). Gdzie obecnie pracuję (laboratorium fizyki kosmicznej), mówiąc, że nigdy nie widzieliście żadnej porażki, chyba że jesteś obcokrajowcem. Mówienie, że ci się nie podoba, i wyjaśnianie, dlaczego z uzasadnionego powodu byłoby przepustką. Rozmyślanie o jednym lub drugim za dużo może nadal być porażką (ponieważ nikt nie chce współpracować z osobą)

Joe
źródło
Ważne jest, aby zadawać osobiste pytania poza murami, aby sprawdzić, czy pasują do zespołu. +1
Derek Downey
@DTest: ale musisz uważać na osobiste pytania ... istnieje wiele klas pytań, których nie wolno ci zadawać, przynajmniej nie w Stanach Zjednoczonych: eeoc.gov/facts/qanda.html
Joe