ฉันควรถามอะไรในการสัมภาษณ์ MySQL DBA


9

ฉันเป็นนักพัฒนาซอฟต์แวร์และช่วยให้ทีมของฉันจ้าง MySQL DBA ความท้าทายหลักที่เราเผชิญคือ:

  • คิวรีและประสิทธิภาพที่ช้าลงเนื่องจากไฮเบอร์เนต

  • การจัดการฐานข้อมูล (สำรอง, ปรับแต่ง, แก้ไข, ความปลอดภัย)

  • ความสามารถในการปรับขนาดเนื่องจากการเพิ่มขึ้นของข้อมูลจากแหล่งข้อมูลใหม่และการสะสมของข้อมูลเก่า

  • เราวางแผนที่จะเริ่มการขุดข้อมูลและคลังข้อมูลในอนาคต ไม่แน่ใจว่าเป็นอย่างไร

เรามักจะมีกรณีการเขียนโปรแกรมที่เราขอให้นักพัฒนาสร้างบางอย่างสำหรับการสัมภาษณ์ แต่มันก็ยากที่จะทำการสัมภาษณ์ DBA ในแบบเดียวกัน

คุณสามารถให้คำแนะนำเกี่ยวกับวิธีการสัมภาษณ์ได้หรือไม่?


1
ดูเหมือนว่านี่อาจจะดีกว่าของ
Program.Stackexchange

มีคนโปรดปกป้องคำถามนี้ นี่เป็นคำตอบที่ยอดเยี่ยม !!!
RolandoMySQLDBA

ว้าว! คุณจัดการเพื่อค้นหา MySQL DBA? เยี่ยมมาก!
Jonathan

@RolandoMySQLDBA ทำเครื่องหมายในครั้งต่อไป;)
jcolebrand

คำตอบ:


11

ไม่ใช่รายการที่สมบูรณ์ แต่รายการคร่าวๆของสิ่งที่ฉันจะพยายามครอบคลุม นอกจากนี้ยังขึ้นอยู่กับว่าพวกเขาจะเป็น DBA "จริง" คนแรกหรือในทีม DBA ไม่ว่า DBA จะเป็นผู้รับผิดชอบต่อเครื่องเช่นกันหรือเฉพาะฐานข้อมูลด้านบน เป็นต้น

  • ควรใช้การกำหนดค่า RAID ใด
  • กลยุทธ์การสำรองข้อมูลสำหรับฐานข้อมูล
  • สิ่งที่เฉพาะเจาะจงของ MySQL เช่นความแตกต่างระหว่าง MyISAM และ InnoDB
  • กลยุทธ์การสำรองข้อมูลและการกู้คืน
  • ปล่อยให้พวกเขาทำแบบสอบถาม SQL บางอย่างและเพิ่มประสิทธิภาพแบบสอบถามบางอย่าง (การใช้อธิบาย ฯลฯ แม้ในขณะที่ใช้ Hibernate บางครั้งก็เป็นการดีที่จะหลีกเลี่ยงการจำศีลเพื่อให้ได้ประสิทธิภาพ)
  • ฉันไม่พูดถึงกลยุทธ์การสำรองข้อมูล
  • เพื่อความยืดหยุ่น DBA ควรรู้เกี่ยวกับโหมดการจำลองแบบที่แตกต่างกัน (RBR, SBR, การจำลองแบบโหมดผสม, การบำรุงรักษาการจำลองแบบเช่นการสังเกตการจำลองแบบล่าช้าและการบำรุงรักษา binlog)
  • การปรับแต่ง InnoDB
  • ไฟล์ประเภทใดที่กำลังถูกเขียนโดย DB (เช่น ibdata และล็อกไฟล์) และวิธีจัดเรียงไฟล์ (เช่นไฟล์ ibdata หนึ่งไฟล์ต่อหนึ่งตารางย้ายพวกมันไปรอบ ๆ บนพาร์ติชั่นต่าง ๆ , การบีบอัด InnoDB)
  • อภิปรายเกี่ยวกับเครื่องมือตรวจสอบ คุณกำลังใช้อะไรพวกเขามีประสบการณ์กับเครื่องมือนั้นหรือเครื่องมือที่คล้ายกันหรือไม่
  • ฉันจะดูเป็นเครื่องมือของระบบเช่น iostat / memstat / vmstat / สิ่งที่ระบบปฏิบัติการของคุณให้ ให้ระบบกับพวกเขาด้วยการโหลดและให้พวกเขาค้นหาสาเหตุ
  • และอาจหารือเกี่ยวกับปัญหาในการสำรองข้อมูล MySQL และคืนค่าโดยเฉพาะ ;-)

ฉันแน่ใจว่าคนอื่นที่นี่สามารถขยายรายการนี้ได้


เฮ้โยฮันเนส;) ฉันชอบโฟกัสสำรอง / กู้คืน - จริง ๆ แล้วมันเป็นเรื่องสำคัญ จะรักที่จะเห็นใครบางคนให้การเปรียบเทียบ MyISAM / InnoDB ฉันเห็นด้วยกับ
Morgan Tocker

คำตอบที่ดีสำหรับปัญหา MySQL และไม่ใช่ MySQL +1 !!!
RolandoMySQLDBA

นิ้วหัวแม่มือขึ้น! คุณสามารถเพิ่มสิ่งที่เกี่ยวกับการสำรองข้อมูล + เรียกคืนกลยุทธ์ในรายการนั้น! ;-)
Marian

6

เมื่อไม่นานมานี้ฉันเขียนเกี่ยวกับเรื่องนี้หลังจากที่ฉันมีส่วนร่วมในกระบวนการสัมภาษณ์ที่ Percona

ฉันคิดว่าการประเมินใครซักคนคุณต้องพยายามทำให้พวกเขาทำในสิ่งที่พวกเขาจะทำในกิจกรรมประจำวัน คำถามแบบสุ่มเช่น "ประเภทข้อมูลอนุกรมใน MySQL คืออะไร" หรือคำถามเกี่ยวกับสติปัญญาเช่น "เหตุใดมนุษย์จึงต้องปิดรู" ไม่ได้รับสิ่งนี้

คุณต้องการให้แน่ใจว่าคุณให้การทดสอบเดียวกันกับทุกคน หากคุณมีบทสนทนาแบบเปิดเผยเท่านั้นผู้คนที่มีความมั่นใจมากขึ้นและมีอิทธิพล (เล็กน้อยบิดเบือน) จะโดดเด่นเนื่องจากพวกเขาสามารถตอบคำถามของคุณอย่างละเอียดและเปลี่ยนเป็นคนที่ตอบคำถามได้ดี คุณจะไม่ได้ตระหนักถึงสิ่งนี้เสมอเมื่อเกิดเหตุการณ์นี้ แต่มักจะมีบางอย่างเช่น "เมื่อฉันเริ่มเป็น DBA เรามี RAM 2MB และใช้เทป .. blah blah blah": P

ต้องบอกว่านี่คือรายการคำถามมาตรฐานของฉัน:

  • อธิบายขั้นตอนการจำลองแบบ MySQL ที่ใช้งานได้อย่างไร
  • องค์ประกอบ D ของกรดหมายถึงอะไรในแง่การปฏิบัติ?
  • innodb_flush_method = O_DIRECT เปลี่ยนอะไร (ระวังสิ่งนี้: ความเข้าใจทั่วไปของสิ่งนี้มักจะผิด )
  • สมมติว่าฉันเขียนแบบสอบถามเช่น "INSERT INTO my_table (a, b) VALUES (1,2)" อธิบายรายละเอียดให้มากที่สุดเท่าที่จะเป็นไปได้ใน MySQL

+1 เล็กน้อยเกี่ยวกับคำถามแบบไม่สำคัญที่ทดสอบความสามารถไม่ถูกต้อง
Derek Downey

3
หากคุณกำลังจะทดสอบพวกเขาในสิ่งที่พวกเขากำลังจะทำแบบวันต่อวันมันจะเป็น "หนังสือเปิด"? ฉันหมายถึงในชั้นเรียนระดับปริญญาตรีของฉันครูสองสามคนยืนยันให้คุณจดจำทุกสิ่งในขณะที่คนอื่นเป็นจริง - ในโลกแห่งความจริงคุณมีคู่มืออ้างอิงเพื่อปรึกษา ส่วนที่สำคัญคือการรู้ว่าจะหาคำตอบได้ที่ไหนบางครั้งยิ่งกว่าคิดว่าคุณรู้คำตอบแล้วก็ผิด (และในบางกรณีการเปลี่ยนแปลงสิ่งต่าง ๆ ดังนั้นการตรวจสอบเอกสารสำหรับรุ่นซอฟต์แวร์เฉพาะที่มีความสำคัญ)
โจ

+1 สำหรับหนังสือที่เปิด หากคุณต้องทำหนังสือปิดมันอาจบ่งบอกว่าคำถามของคุณเป็นคำถามไม่สำคัญ
Morgan Tocker

อ่านบทความและคำตอบของคุณ โว้ว !!! สุดยอดคำถาม ฉันชอบที่จะบินไปบนกำแพงและดูว่าเกิดอะไรขึ้นเมื่อมีคนถามคำถามเช่นนี้ ฉันควรใช้คำถามเหล่านี้เมื่อสัมภาษณ์ผู้สมัครด้วยตนเอง ขอบคุณครั้งใหญ่ !!! +1 !!!
RolandoMySQLDBA

6

ฉันขอแนะนำให้ดูรายการที่กำหนดไว้แล้วบางส่วนเกี่ยวกับการสัมภาษณ์ DBA:

  • 10 คำถามเกี่ยวกับ SQL Server DBA Interview - โดย Brent Ozar ของเรา

    • คำถามที่ชื่นชอบ:
    • "คุณช่วยให้ฉันอ้างอิงจาก DBA อื่น ๆ และนักพัฒนาที่ไม่ได้อยู่ใน บริษัท ของคุณ"
    • "ผู้จัดการโครงการต้องการ SQL Server ใหม่คุณถามอะไรเธอ"
  • คำถามสัมภาษณ์จูเนียร์ DBA - โดย Thomas LaRock ของเราเอง

    • คำถามที่ชื่นชอบ: "ถ้าฉันขอให้คุณเรียนรู้วิธีทำแบบสอบถามให้เร็วขึ้นคุณจะไปไหนดี"
  • คำถามการคัดกรองฐานข้อมูล - โดย Grant Fritchey

    • คำถามที่ชื่นชอบ: "คุณคือ DBA โทรศัพท์ดังขึ้นหนึ่งในผู้ใช้อยู่ในสายพวกเขาพูดว่า" ฐานข้อมูลช้า " จากนั้นพวกเขาวางสายคุณจะทำอย่างไร

พวกเขาเป็นนักเขียน SQL Server ที่ยอดเยี่ยม ฉันรู้ว่าคำถามบางข้ออาจเป็น SQL Server ที่มุ่งเน้น แต่ส่วนใหญ่ไม่ได้และสามารถใช้ในการสัมภาษณ์ DBA ทั่วไป


1
คุณสามารถเพิ่มคำถามที่คุณชื่นชอบจากแต่ละรายการที่นี่ได้ไหม นั่นจะทำให้คำตอบนี้มีคุณค่ามากขึ้น
Nick Chammas

แรงจูงใจหลักของฉันก็เพื่อดูว่าควรทดสอบหัวข้อเหล่านี้อย่างไร (เช่นถามเกี่ยวกับการจำลองแบบหรือส่งระบบทดสอบเพื่อให้พวกเขาตั้งค่า) ฉันจะตรวจสอบรายการอย่างละเอียดและฉันเดาว่าคำถามระดับ DBA ทั่วไปจะไม่พบแคนดิซเฉพาะ MySQL ที่ดี
geoaxis

1
@Nick: ขอบคุณสำหรับบันทึกปรับปรุงคำตอบ Geoaxis - DBA ที่ดีในทุกรสชาติจะสามารถจับความซับซ้อนของ MySQL ได้ เช่นเมื่อคุณจ้างนักพัฒนา Java คุณจะถามเฉพาะคำถามเกี่ยวกับห้องสมุด Java ทางเทคนิคที่เข้มงวดหรือคำถามทั่วไป
แมเรียน

5

แม้ว่าฉันจะเห็นด้วยว่าคำถามสัมภาษณ์ที่สุ่มหลาย ๆ ฉบับ (เช่นฝาปิดท่อระบายน้ำ) ไม่มีประโยชน์จริงๆ ... (ยกเว้นอาจจะเป็นนักออกแบบอุตสาหกรรมและสำหรับกรณีนั้น)

เมื่อคุณได้รับที่ผ่านมาด้านของเรื่องไม่สำคัญมากของพวกเขาที่พวกเขากำลังตั้งใจจะเป็นสิ่งที่คุณไม่ได้รู้คำตอบและเพื่อให้คุณจะต้องอธิบายวิธีที่คุณจะไปเกี่ยวกับการหาคำตอบ หรือไม่. เช่น:

  • ทำสิ่งที่เป็นไปได้และ / หรือพยายามที่จะพล่ามทางของคุณผ่าน (อาจมีประโยชน์สำหรับการขายและการตลาดหรือสาขาอื่นไม่จ้าง)
  • ประเมินตามข้อมูลอื่น
  • อธิบายวิธีที่คุณจะได้รับข้อมูลที่จำเป็นในการแก้ปัญหา

... ฯลฯ

เมื่อฉันได้รับการว่าจ้างจากกระบวนการจ้างงานที่ผ่านมาฉันพยายามทำการสัมภาษณ์ทางโทรศัพท์ 5 ถึง 15 นาทีที่ไม่ได้กำหนดไว้อย่างสมบูรณ์ (เพียงแค่โทรหาพวกเขาเพราะพวกเขาสามารถให้เวลาคุณสักสองสามนาที ... ไม่ทุกคนทำได้เพราะบางคนกำลังทำงานอยู่พวกเขาวางแผนที่จะออกไป) ... เพียงเพื่อประเมินว่าฉันคิดว่าพวกเขากำลังพล่ามในการทำงานต่อของพวกเขา

ตัวอย่างเช่นเมื่อเราจ้างโปรแกรมเมอร์อาวุโส PL / SQL ฉันจะถามพวกเขาว่าส่วนของบล็อก PL / SQL คืออะไร ทุกวันนี้มันเกิดขึ้นเป็นครั้งแรกใน Google ... นั่นไม่ใช่กรณีในปี 2003 คนส่วนใหญ่ที่เราสัมภาษณ์อาจเคยใช้ Oracle มาก่อนพวกเขาอาจเขียน SQL สำหรับ Oracle ... แต่ถ้าคุณ ไม่สามารถบอกเบาะแสที่คุณรู้ว่าบล็อก PL / SQL เป็นอย่างไรคุณไม่ได้ทำงานโปรแกรมเมอร์โปรแกรมเมอร์ PL / SQL

...

และที่ถูกกล่าวว่าคำถามไปที่ฉันสำหรับการสัมภาษณ์ด้วยตนเองใด ๆ คือ:

Star Wars หรือ Star Trek

ในบางส่วนคุณจะได้เห็นว่าพวกเขารับมือกับสถานการณ์ที่ไม่มีคำตอบที่ดีที่สุดอย่างไรหากพวกเขาตอบคำถามทางการทูตหรือคิดนอกกรอบ (เช่นดร. Who หรือ Firefly เป็นคำตอบที่ถูกต้อง) ที่ฉันทำงานอยู่ในขณะนี้ (แล็บฟิสิกส์อวกาศ) โดยบอกว่าคุณไม่เคยเห็นอาจจะล้มเหลวเว้นแต่คุณเป็นคนต่างชาติ การพูดว่าคุณไม่ชอบและอธิบายว่าทำไมด้วยเหตุผลที่ดีจะผ่านไป Geeking เกี่ยวกับคนใดคนหนึ่งมากเกินไปยังอาจจะล้มเหลว (ที่ไม่มีใครต้องการที่จะทำงานร่วมกับที่คน)


มันเป็นเรื่องสำคัญที่จะต้องมีคำถามส่วนตัวที่ไม่ชอบเพื่อดูว่าพวกเขาเหมาะสมกับทีมหรือไม่ +1
ดีเร็กดาวนีย์

@DTest: แต่คุณต้องระวังเกี่ยวกับคำถามส่วนตัว ... มีคำถามมากมายที่คุณไม่ได้รับอนุญาตให้ถามอย่างน้อยไม่ใช่ในสหรัฐอเมริกา: eeoc.gov/facts/qanda.html
Joe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.