Что я должен спросить на собеседовании с MySQL DBA?

9

Я разработчик программного обеспечения и помогаю моей команде нанимать администратора баз данных MySQL. Основные проблемы, с которыми мы сталкиваемся:

  • Более медленные запросы и производительность из-за Hibernate.

  • Управление базой данных (резервное копирование, настройка, исправления, безопасность).

  • Масштабируемость за счет увеличения данных из новых источников данных и накопления более старых данных.

  • Мы планируем начать добычу и хранение данных в будущем. Не уверен, как, но это направление.

У нас обычно бывают случаи программирования, когда мы просим разработчиков создать что-то для собеседования, но немного сложнее провести собеседование с DBA таким же образом.

Можете ли вы дать предложения о том, как следует проводить интервью?

geoaxis
источник
1
Похоже, что это, вероятно, лучше для программистов.Stackexchange, но я новичок в этом сообществе, так что не
поверьте
Кто-то, пожалуйста, защитите этот вопрос. Это отличные ответы !!!
RolandoMySQLDBA
Вот Это Да! вам удалось найти администратора базы данных MySQL? Отличная работа!
Джонатан
@RolandoMySQLDBA пометить его в следующий раз;)
jcolebrand

Ответы:

11

Не полный список, но грубый список вещей, которые я бы хотел охватить. Это также зависит от того, будут ли они первыми «настоящими» администраторами баз данных или в команде администраторов баз данных. Независимо от того, отвечает ли администратор базы данных за машины или только за базу данных. и т.п.

  • какую конфигурацию RAID следует использовать
  • стратегии резервного копирования для баз данных.
  • MySQL специфические вещи, такие как различия между MyISAM и InnoDB
  • стратегии резервного копирования и восстановления
  • Позвольте им выполнять некоторые запросы SQL и некоторую оптимизацию запросов (использование объяснения и т. Д. Даже при использовании hibernate. Иногда полезно обойти hibernate для повышения производительности)
  • я упоминал стратегии резервного копирования
  • Для масштабируемости администратор базы данных должен знать о различных режимах репликации (RBR, SBR, репликация в смешанном режиме, обслуживание репликации, такое как наблюдение за задержкой репликации и обслуживание бинлогов)
  • InnoDB тюнинг
  • Какие файлы записываются в БД (например, файлы ibdata и log) и как их можно расположить (например, один файл ibdata на таблицу, перемещать их по разным разделам, сжатие InnoDB)
  • Обсудить инструменты мониторинга. Что вы используете, у них есть опыт работы с этим инструментом или подобным?
  • Я также изучил бы системные инструменты, такие как iostat / memstat / vmstat / независимо от того, что предоставляет ваша ОС. Дайте им систему с некоторой нагрузкой и дайте им найти причину
  • И, возможно, обсудить проблемы в резервном копировании MySQL и особенно восстановления ;-)

Я уверен, что другие здесь могут расширить этот список

Johannes
источник
Привет, Йоханнес;) Мне нравится фокус резервного копирования / восстановления - это действительно то, что имеет значение. Хотелось бы, чтобы кто-то дал сравнение MyISAM / InnoDB, с которым я согласен.
Морган Токер
Отличный ответ для MySQL и не MySQL проблем. +1 !!!
RolandoMySQLDBA
Палец вверх! Вы можете добавить что-нибудь относительно стратегий резервного копирования + восстановления в этот список! ;-)
Marian
6

Я написал об этом некоторое время назад , после того как внес свой вклад в процесс собеседования в Перконе.

Я думаю, что для оценки кого-то вы должны попытаться заставить его делать то, что он делал бы в обычной повседневной деятельности. Случайные вопросы типа «Что такое последовательный тип данных в MySQL?» или вопросы интеллекта, такие как "почему дыры вокруг человека?" не добиться этого.

Вы также хотите убедиться, что вы даете всем одинаковый тест. Если у вас открытое собеседование только для собеседования, более уверенные и (слегка манипулирующие) люди будут выделяться, поскольку они могут тонко обойти ваши вопросы и превратить их в те, на которые они хорошо отвечают. Вы не всегда поймете, когда это происходит, но оно часто содержит что-то вроде «когда я начинал как администратор баз данных, у нас было 2 МБ ОЗУ и использовались ленты… бла-бла-бла»: P

Сказав это, вот мой стандартный список вопросов:

  • Опишите процесс, с помощью которого работает репликация MySQL?
  • Что D-компонент ACID означает на практике?
  • Что меняет innodb_flush_method = O_DIRECT? (Будьте осторожны с этим: общее понимание этого часто неверно .)
  • Скажем, я пишу запрос типа «INSERT INTO my_table (a, b) VALUES (1,2)». Как можно подробнее опишите мне, что происходит внутри MySQL.
Морган Токер
источник
+1 за бит о случайных вопросах, подобных пустякам, не проверяющих способности должным образом.
Дерек Дауни
3
Если вы собираетесь проверить их на то, что они собираются делать изо дня в день, будет ли это «открытой книгой»? Я имею в виду, что на моих уроках старшекурсников некоторые из учителей настаивали на том, чтобы вы запомнили все, а другие были реалистичны - в реальном мире у вас есть справочные руководства, к которым можно обратиться; важная часть - знать, где найти ответ, иногда даже больше, чем думать, что ты знаешь ответ, и быть неправым. (а в некоторых случаях все меняется, поэтому важно проверить документы на конкретную версию программного обеспечения)
Джо
+1 за открытую книгу. Если вы должны сделать закрытую книгу, это может означать, что ваши вопросы являются пустяковыми.
Морган Токер
Прочитайте свою статью и свой ответ. Вау !!! Великолепные вопросы. Я хотел бы быть мухой на стене и смотреть, что происходит, когда некоторые задают такие вопросы. Я должен использовать этот вопрос при опросе кандидатов сам. Спасибо большое время !!! +1 !!!
RolandoMySQLDBA
6

Я бы посоветовал взглянуть также на некоторые уже установленные списки, касающиеся интервью с DBA:

  • Лучшие 10 вопросов интервью с администратором баз данных SQL Server - от нашего собственного Брента Озара

    • любимые вопросы:
    • «Можете ли вы дать мне ссылки от других администраторов баз данных и разработчиков, которые не в вашей компании?»
    • «Менеджеру проекта нужен новый SQL Server. Что вы у нее спросите?»
  • Вопросы для юниоров DBA - от нашего собственного Thomas LaRock

    • любимый вопрос: «Если бы я попросил вас узнать, как сделать запрос быстрее, куда бы вы пошли?»
  • Вопросы проверки баз данных - Грант Фричи

    • любимый вопрос: «Вы администратор базы данных. Звонит телефон. Один из пользователей находится на линии. Они говорят:« База данных работает медленно ». Затем они вешают трубку. Что вы делаете? "

Все они великие писатели SQL Server. Я знаю, что некоторые вопросы могут быть ориентированы на SQL Server, но большинство из них нет и могут быть использованы в общем собеседовании с администратором баз данных.

Мэриан
источник
1
Не могли бы вы добавить свой любимый вопрос из каждого списка здесь? Это придало бы этому ответу гораздо большую ценность.
Ник Чаммас
Моей главной мотивацией было также посмотреть, как эти темы должны быть протестированы (например, спросить о репликации или передать тестовую систему для их настройки). Я тщательно изучаю списки и думаю, что общие вопросы уровня DBA не найдут меня хорошим кандидатом на MySQL.
геоосис
1
@Nick: спасибо за примечание, обновил ответ. Geoaxis - хороший администратор баз данных любого вкуса, сможет поймать тонкости MySQL. Например, при найме разработчика Java вы задаете только строгие технические вопросы по библиотеке Java или общие вопросы по программированию?
Мариан
5

Хотя я согласен с тем, что многие, казалось бы, случайные вопросы об интервью (например, вопрос о крышке люка) не очень полезны ... (за исключением, может быть, для промышленного дизайнера и только для этого случая).

Как только вы пройдете через мелкие аспекты многих из них, они должны стать вещами, на которые вы не знаете ответа, и поэтому вам придется описать, как вы будете искать ответ. Или нет. Например:

  • придумайте что-нибудь правдоподобное и / или попытайтесь обмануть себя. (может быть полезно для продаж и маркетинга? в любой другой области, не нанимайте.)
  • оценить это на основе другой информации
  • объясните, как вы получите необходимую информацию для решения проблемы

...так далее.

Когда я отвечал за процесс найма в прошлом, я стараюсь провести совершенно незапланированное телефонное интервью продолжительностью от 5 до 15 минут (просто позвоните им, если они могут дать вам пару минут времени ...) не все могли, так как некоторые были на работе, которую планировали уйти) ... просто чтобы оценить, насколько я думаю, что они бредят в своем резюме.

Например, когда мы нанимали старшего программиста на PL / SQL, я спрашивал их, каковы части блока PL / SQL. В наши дни в Google это происходит первым делом ... это было не так в 2003 году. Большинство опрошенных нами людей раньше могли использовать Oracle, возможно, они написали SQL для Oracle ... но если вы не могу дать мне понять, что вы знаете, как выглядит блок PL / SQL, вы не готовы работать старшим программистом на PL / SQL.

...

И, как говорится, мой вопрос для любого личного интервью:

Звездные войны или Звездный путь?

Отчасти вы увидите, как они справляются с ситуацией, когда нет лучшего ответа, если они дипломатичны в своем ответе или если они думают нестандартно (например, Dr. Who или Firefly являются действительными ответами). Там, где я сейчас работаю (лаборатория космической физики), говорить, что вы никогда не видели ни одного, может оказаться неудачей, если вы не иностранец. Сказать, что вы тоже не любите, и объяснить, почему на то есть веская причина. Слишком частое использование одного из них может быть неудачей (так как никто не хочет работать с этим человеком)

Джо
источник
Очень важно иметь личные вопросы, чтобы узнать, подойдут ли они для команды. +1
Дерек Дауни
@DTest: но вы должны быть осторожны с личными вопросами ... существует множество классов вопросов, которые вам не разрешено задавать, по крайней мере, в США: eeoc.gov/facts/qanda.html
Джо