ป้ายกำกับ: Project

PostgreSQL: ก็ผ่านมาหลายยุคกว่าจะดังPostgreSQL: ก็ผ่านมาหลายยุคกว่าจะดัง

PostgreSQL มีประวัติศาสตร์อันยาวนานกว่า 30 ปี โดยเริ่มต้นจากโครงการวิจัยในมหาวิทยาลัยจนกลายมาเป็นระบบจัดการฐานข้อมูล Open Source ที่ก้าวหน้าที่สุดในโลก เราสามารถแบ่งยุคสมัยของ Postgres ได้ดังนี้ครับ


ยุคกำเนิด: The POSTGRES Project ( 1986 – 1994 )

ยุคนี้เริ่มต้นที่ University of California, Berkeley นำโดย Michael Stonebraker ( ผู้สร้าง Ingres ) โดยมีจุดประสงค์เพื่อแก้ปัญหาของฐานข้อมูลในสมัยนั้น

  • แนวคิดหลัก: ชื่อ “POSTGRES” มาจากคำว่า “Post-Ingres”
  • นวัตกรรม: มุ่งเน้นเรื่อง “Object-Relational” ซึ่งรองรับชนิดข้อมูลที่ซับซ้อนและการสืบทอดคุณสมบัติ ( Inheritance )
  • จุดเปลี่ยน: ในเวอร์ชันแรก ๆ ยังไม่ได้ใช้ภาษา SQL แต่ใช้ภาษาที่เรียกว่า POSTQUEL

ยุคเปลี่ยนผ่าน: Postgres95 ( 1994 – 1996 )

นักศึกษาปริญญาเอกสองคนคือ Andrew Yu และ Jolly Chen ได้ทำการแทนที่ตัวแปลภาษา POSTQUEL ด้วย SQL

  • ความสำคัญ: ทำให้ฐานข้อมูลนี้เข้าถึงง่ายขึ้นตามมาตรฐานสากล
  • การเปิดตัว: รหัสต้นฉบับถูกปล่อยออกมาเป็น Open Source ภายใต้สัญญาอนุญาตแบบ MIT-style ( ซึ่งภายหลังกลายเป็น PostgreSQL License )

ยุคสร้างชื่อ: PostgreSQL 6.x – 7.x ( 1997 – 2004 )

ยุคนี้คือการเปลี่ยนชื่อเป็น PostgreSQL อย่างเป็นทางการ ( เพื่อสะท้อนว่ารองรับ SQL แล้ว ) และเริ่มสร้างฟีเจอร์สำคัญที่ทำให้ Database มีความน่าเชื่อถือระดับ Enterprise

  • ฟีเจอร์เด่น: * MVCC ( Multi-Version Concurrency Control ): ช่วยให้การอ่านและเขียนข้อมูลไม่ติดขัดกัน
    • WAL ( Write-Ahead Logging ): เพิ่มความปลอดภัยของข้อมูลหากระบบล่ม
    • Outer Joins & Subselects: รองรับการเขียน Query ที่ซับซ้อนขึ้น

ยุคก้าวกระโดด: PostgreSQL 8.x ( 2005 – 2009 )

เป็นยุคที่ PostgreSQL เริ่มถูกนำไปใช้ในภาคธุรกิจอย่างกว้างขวาง

  • Native Windows Support: เดิมทีต้องรันผ่านเลเยอร์จำลอง แต่ในเวอร์ชัน 8.0 สามารถรันบน Windows ได้โดยตรง
  • Savepoints: ช่วยให้จัดการ Transaction ได้ละเอียดขึ้น
  • Point-in-Time Recovery ( PITR ): การกู้คืนข้อมูลย้อนกลับไปยังเวลาที่ต้องการ

ยุคทันสมัยและการขยายตัว: PostgreSQL 9.x ( 2010 – 2017 )

ยุคนี้เน้นเรื่องการขยายระบบ ( Scalability ) และการรองรับข้อมูลประเภทใหม่ ๆ

  • Replication: การทำ Streaming Replication กลายเป็นมาตรฐาน ทำให้ทำ High Availability ( HA ) ได้ง่ายขึ้น
  • JSON & JSONB: การมาของชนิดข้อมูล JSONB ทำให้ Postgres กลายเป็นคู่แข่งที่น่ากลัวของ NoSQL ( เช่น MongoDB ) เพราะเก็บข้อมูลแบบ Schema-less ได้อย่างรวดเร็ว
  • Common Table Expressions ( CTE ): ช่วยให้เขียน Query ที่อ่านง่ายและซับซ้อนได้ดีขึ้น

ยุคปัจจุบัน: PostgreSQL 10 ขึ้นไป ( 2017 – ปัจจุบัน )

ตั้งแต่เวอร์ชัน 10 เป็นต้นมา Postgres เปลี่ยนระบบการนับเวอร์ชัน ( จาก 9.6 เป็น 10, 11, 12… ) และมุ่งเน้นประสิทธิภาพในระดับมหาศาล

  • Logical Replication: ช่วยให้ย้ายข้อมูลข้ามเวอร์ชันหรือเลือกเฉพาะบางตารางได้ง่ายขึ้น
  • Table Partitioning: รองรับการแบ่งตารางขนาดใหญ่ให้ทำงานได้เร็วขึ้นอย่างเป็นระบบ
  • Parallel Query: การใช้ CPU หลาย Core ช่วยในการประมวลผลคำสั่งเดียว
  • Performance: พัฒนาการจัดการดัชนี ( B-tree ) และการบีบอัดข้อมูลให้ดียิ่งขึ้นในทุก ๆ ปี

เกร็ดน่ารู้: แม้ปัจจุบันเราจะเรียกสั้น ๆ ว่า Postgres แต่ชื่ออย่างเป็นทางการคือ PostgreSQL ซึ่งมักจะถูกล้อเลียนว่าเป็นชื่อที่ออกเสียงยากที่สุดชื่อหนึ่งในวงการไอทีครับ


อ่านเพิ่มเติม