2008-09-15 7 views
9

엔터프라이즈 레벨 스킬 세트가 필요한 역할에 대해 MySQL DBA/개발자 직책의 후보자를 선별하도록 요청 받았습니다.MySQL 인터뷰 관련 질문

저는 SQL Server 담당자이기 때문에 확장 성/디자인 등과 관련하여 그 관점에서 무엇을 찾고 있는지 알고 있지만 MySQL에 관해서는 묻고 싶은 것이 있습니까?

대개 큰 데이터베이스에서 작업 할 때만 사용하는 MySQL의 엔터프라이즈 수준 기능에 대해 질문하는 것이 이상적입니다. 기업 개발자를 집/소규모 웹 사이트에서 분리해야합니다.

감사합니다.

+0

여기에 몇 가지 글을 올렸습니다. http://www.alphadevx.com/a/468-Technical-screening-questions-for-a-MySQL-DBA – alphadevx

답변

39

SQL Server와 MySQL이 둘 다 RDBM이지만 MySQL에는 초보자와 전문가의 차이점을 설명 할 수있는 많은 고유 기능이 있습니다.

첫 번째 단계는 후보자가 phpMyAdmin과 같은 GUI 도구뿐만 아니라 명령 줄을 사용하는 것이 편한지 확인하는 것입니다. 인터뷰를하는 동안 응시자에게 MySQL 코드를 작성하여 데이터베이스 테이블을 만들거나 새 색인을 추가하도록 요청하십시오. 이것은 매우 기본적인 쿼리이지만, GUI 도구가 초심자가 마스터 링을하지 못하도록하는 유형입니다. MySQL에 익숙한 사람과 함께 해답을 다시 확인할 수 있습니다.

응시자는 JOIN의 작동 방식에 대한 지식을 입증 할 수 있습니까? 예를 들어 표 2에서 일치하는 항목이없는 표 1의 모든 행을 반환하는 쿼리를 생성하도록 응시자에게 요청하십시오. 대답은 LEFT JOIN을 포함해야합니다.

후보자에게 백업 전략 및 각각의 다양한 강점과 약점에 대해 의논하도록 요청하십시오. 응시자는 모든 테이블이 MyISAM이 아니면 데이터베이스 파일을 직접 백업하는 것이 효과적인 전략이 아니라는 것을 알아야합니다. 응시자는 분명히 mysqldump를 백업의 초석으로 언급해야한다. 보다 정교한 백업 솔루션에는 ibbackup/innobackup 및 LVM 스냅 샷이 포함됩니다. 이상적으로, 응시자는 백업이 성능에 어떤 영향을 미칠 수 있는지에 대해서도 논의해야합니다 (일반적인 해결책은 백업을 수행하는 데 슬레이브 서버를 사용하는 것입니다).

응시자는 복제 경험이 있습니까? 일반적인 복제 구성 및 각각의 다양한 장점은 무엇입니까? 가장 일반적인 설정은 마스터 - 슬레이브 (master-slave)로, 응용 프로그램이 슬레이브 서버를 사용하여 SELECT 쿼리를 오프로드 할 수 있으며 슬레이브를 사용하여 백업을 수행하여 마스터의 성능 문제를 방지 할 수 있습니다. 또 다른 공통 설정은 master-master이며, 성능에 영향을 미치지 않고 스키마를 변경하는 것이 가장 큰 이점입니다. 후보자가 슬레이브 서버 복제 (mysqldump + notation of the binlog position),로드 밸런서 또는 MySQL 프록시를 사용하여로드 분산, 큰 쿼리를 청크로 분할하여 resolving slave lag과 같은 일반적인 문제를 논의하고 슬레이브를 새로운 마스터로 승격시키는 방법을 설명합니다.

후보가 성능 문제를 어떻게 해결합니까? 병목 현상이 CPU 바인딩, IO 바인딩 또는 네트워크 바인딩인지 여부를 진단하기 위해 기본 운영 체제 및 하드웨어에 대한 충분한 지식을 갖추고 있습니까? EXPLAIN을 사용하여 색인 생성 문제를 발견하는 방법을 보여줄 수 있습니까? 그들은 느린 쿼리 로그 또는 키 버퍼, tmp 테이블 크기, innodb 버퍼 풀 크기 등과 같은 구성 옵션을 언급합니까?

응시자는 각 저장소 엔진의 미묘함에 감사합니까? (MyISAM, InnoDB, MEMORY가 주요한 것들이다). 각 스토리지 엔진이 쿼리를 최적화하는 방법과 잠금이 처리되는 방식을 이해하고 있습니까? 적어도, 후보자는 MyISAM이 테이블 수준 잠금을 발행하고 InnODB는 행 수준 잠금을 사용한다고 언급해야합니다.

라이브 데이터베이스에 스키마를 변경하는 가장 안전한 방법은 무엇입니까? 응시자는 마스터 - 마스터 복제를 언급하고 원하는 구성으로 새 테이블을 만들고 mysqldump 또는 INSERT INTO ... SELECT 다음에 RENAME TABLE을 사용하여 ALTER TABLE의 잠금 및 성능 문제를 방지해야합니다.

마지막으로 프로의 유일한 진정한 측정은 경험입니다. 응시자가 고 가용성 환경에서 대규모 데이터 세트를 관리하는 특정 경험을 가리킬 수없는 경우 순수 지능 수준에서 보유한 지식을 백업하지 못할 수도 있습니다.

1

데이터베이스 유형에 따라 달라질 수 있습니다 : 트랜잭션 또는 데이터웨어 하우스?

아무튼 모든 유형에 대해 MySQL 복제 및 클러스터링, 성능 조정 및 모니터링 개념에 대해 구체적으로 물어볼 것입니다.

+0

트랜잭션 DB입니다. 내가 듣기를 기대하는 특정 MySQL 기능은 무엇입니까? – Campbell

6

다양한 스토리지 엔진 간의 차이점과 그 이점과 단점에 대해 물어볼 것입니다.

자동 증가 키가있는 테이블을 사용할 때 복제의 단점을 극복하고 복제의 단점을 파헤십시오.

아직 당신과 함께 있다면 복제 지연에 대해 물어보십시오. 복제 지연에 대해 물어보십시오.