Database Sharding คืออะไร? ส่องเทคนิคปรับฐานข้อมูลระดับ Terabyte ให้แรงไม่มีตก
ลองนึกภาพคืนวันจัดโปรโมชั่นใหญ่ที่คนทะลักเข้าเว็บพร้อมกันหลักแสน ในขณะที่ออเดอร์กำลังหลั่งไหลเข้ามา จู่ๆ ระบบกลับนิ่งสนิท ทีมวิศวกรหน้าซีดเพราะฐานข้อมูลเครื่องหลักติดคอขวด ทุก Query ค้างเติ่งเพราะ Hard Drive หมุนไม่ทันและ CPU พุ่งเต็ม 100% แม้จะพยายามจ่ายเงินอัปเกรดเซิร์ฟเวอร์ให้แรงที่สุดในตลาดแล้วแต่ก็ยังเอาไม่อยู่ สถานการณ์วิกฤตนี้เองที่ทำให้เทคนิค Database Sharding กลายเป็นไพ่ตายใบสุดท้าย คือการทำ Horizontal Scaling ที่ฉลาดกว่าการซื้อเครื่องแพง ๆ สเปคเทพ แต่เป็นการ “สับ” ฐานข้อมูลยักษ์ออกเป็นชิ้นเล็ก ๆ แล้วกระจายไปวางบนเซิร์ฟเวอร์หลายเครื่อง เพื่อให้ดาต้ามหาศาลระดับ Terabyte ทำงานได้ลื่นไหล เราไปเข้าใจความสำคัญของระบบให้มากขึ้นกับบทความนี้ได้เลย เจาะแนวคิด Database Sharding เมื่อกระจายกันทำงาน ผลลัพธ์มันว้าวกว่า ความหมายพื้นฐานเล่าแบบเข้าใจง่าย ๆ ใน Database Sharding คือกระบวนการแบ่งแยกฐานข้อมูลขนาดใหญ่ออกเป็นส่วนย่อยๆ ที่เรียกว่า “Shards” เพื่อกระจายภาระการจัดเก็บและการประมวลผลข้อมูลออกไปยังเซิร์ฟเวอร์หลายตัวแทนการพึ่งพาเครื่องเดียว ถ้าจะให้เห็นภาพลองนึกถึงห้องสมุดขนาดใหญ่ที่มีบรรณารักษ์คนเดียวคอยหาหนังสือให้คนทั้งเมือง ต่อให้บรรณารักษ์คนนี้จะเก่งแค่ไหน หรือรู้ทุกซอกมุมของหนังสือ แต่ถ้าคนมาพร้อมกันทั้งหมู่บ้าน คำว่าวิบัติรออยู่แน่ ๆ ทว่าการทำ … Read more