วันอังคารที่ 9 กุมภาพันธ์ พ.ศ. 2553

เริ่มต้นทำความรู้จักกับ NOSQL กันเถอะ : Introduction to NOSQL

ผมเชื่อว่าโปรแกรมเมอร์หลายๆคนที่ได้จับงานฐานข้อมูลที่ต้องใช้ความเร็วสูงแบบเรียลไทม์ หรือ Web 2.0 ทั้งหลายน่าจะได้ผ่านๆตากับคำว่า NOSQL กัน จากที่ผมได้ศึกษามาไม่กี่วัน ก็ได้ข้อสรุปเบื้องต้นคร่าวๆดังนี้ครับ

มันคือ ฐานข้อมูลที่ไม่มีภาษา SQL ให้ใช้ จบข่าว

อ้าวจะบร้าเหรอ ตอบแค่นี้คนเลิกอ่านกันพอดี แต่มันก็จริงๆนี่นา

เอาให้ละเอียดมันต่างจาก MySQL Microsoft SQL Oracle ที่เราๆท่านๆคุ้นเคยตรงนี้ครับ

  1. อย่างแรกเลยมันไม่มีความสัมพันธ์ครับ เพราะมันไม่ใช่ Relational Database เพราะฉะนั้นลืมเรื่อง Join, WHERE ไปได้เลย
  2. เน้นใช้งานกับปริมาณข้อมูลที่มีจำนวนมากมายมหาศาล ใครนึกไม่ออกว่ามากขนาดไหน ลองนึกถึง www.facebook.com, www.twitter.com, www.google.com นั่นแหละครับ ให้มา่นั่ง SELECT FROM WHERE รับรองครับ สิบนาทีถึงจะได้ข้อมูล
  3. แต่เนื่องจากพวก NOSQL มันไม่มีโครงสร้างตายตัว มันเลยขายได้มากกว่า ในแบบขนาน (horizontal scaling) คือเพิ่มเครื่องได้ง่ายกว่านั่นแหละ
  4. ประสิทธิภาพสูงกว่า แต่ก็มากับการออกแบบที่ไม่แน่นอนไม่ตายตัวและยากกว่า RDB เป็นไหนๆ เพราะไม่ต้องคอยจัดการเรื่องความสัมพันธ์
  5. ตอนเรียนวิชาฐานข้อมูลมาเราเน้นการ Normalize แต่ที่นี่เราเน้นการ Denormalize ครับ เน้นให้มันเร็วที่สุดไม่ต้องไป join อะไรทั้ง หาเรคคอร์ดเดียวแล้วเอามาใช้งานได้เลย เช่นข้อมูล Contact ของ member เราก็เก็บทุกอย่างทุกคอลัมน์ลงไปเลยครับ ไม่ต้องไปแยกจังหวัด หรืออำเภออะไร เพื่อให้เกิดการ Compare เปรียบเทียบน้อยที่สุดครับ
  6. เวลาจะเชื่อมต่อต้องง่ายเข้าไว้ไม่ต้องมี overhead เยอะ มีแค่ IP กับ Port จบเลย
  7. ต้องสามารถทำ Replication ได้เพราะ ข้อมูลเป็นสิ่งสำคัญ และจะได้ไม่ทำให้เกิด Single Point of Failure หรือเกิดจุดตายในระบบ คือ พังไปซักเครื่อง ก็ยังทำงานได้ปกติ
  8. เน้นการทำงานแบบ Key/Value หรือ Key/Column แล้วแต่ยี่ห้อครับ
ตัวอย่างของฐานข้อมูลแบบ NOSQL Database ที่มีในท้องตลาดตอนนี้แบ่งตามประเภท (ที่มา wikipedia.org)
เดี๋ยววันหลังจะมาจำแนก และแนะนำว่า ประเภทไหนเหมาะกับ งานแบบไหนให้ดูกันนะครับ

ส่วนใครอยากได้ข้อมูลเพิ่มเติมเชิญได้ที่

สำหรับวันนี้สวัสดีครับ เลิกงานแล้วไปดีกว่า อิอิ

5 ความคิดเห็น:

  1. อธิบายได้ชัดเจนดีครับ

    - -" แต่ .... ไม่มาต่อแล้วเหรอ

    ตอบลบ
  2. ไม่ทำต่อแล้วเหรอครับ

    ตอบลบ
  3. แล้วสิ่งที่เรียนมา ที่อาจารย์ชอบพูดว่า นอมอไหลเซชั่น นั่นล่ะ
    ลืมไปได้เลยใช่มั๊ยค่ะ สูงสุดสู่สามัญแล้วทีนี้ - -'

    ตอบลบ

เชิญถามตอบกันได้ที่นี่ครับ