สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
ฐานข้อมูล · DBC-02-06

PostgreSQL for Developers

หลักสูตร PostgreSQL for Developers เป็นการอบรมการใช้ PostgreSQL 18 ในมุมนักพัฒนา ตั้งแต่ออกแบบ Schema เขียน SQL สมัยใหม่ ใช้ JSONB อ่าน EXPLAIN เลือก Index จนถึงเขียน PL/pgSQL และเชื่อมกับแอปผ่าน ORM เหมาะกับนักพัฒนา Backend และ Full Stack ที่ต้องการให้ฐานข้อมูลเร็วและถูกต้อง

อัปเดตล่าสุด
ราคาเริ่มต้น 8,010 บาท / ท่าน 8,900 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

PostgreSQL กลายเป็นฐานข้อมูลตัวเลือกแรกของแอปยุคใหม่ ทั้งระบบหลังบ้าน SaaS และงานที่ต้องเก็บข้อมูลแบบ JSON หรือ Vector ไว้ที่เดียวกัน แต่นักพัฒนาจำนวนมากยังใช้ PostgreSQL เหมือนฐานข้อมูลทั่วไปผ่าน ORM อย่างเดียว พอข้อมูลโตขึ้นก็เจอ Query ช้า Lock ค้าง ข้อมูลผิดเพราะไม่มี Constraint หรือโค้ดที่เปิดช่อง SQL Injection โดยไม่รู้ตัว ทั้งที่ PostgreSQL มีเครื่องมือแก้ปัญหาเหล่านี้อยู่ในตัวแล้ว

หลักสูตรนี้พาผู้เรียนใช้ PostgreSQL 18 แบบที่นักพัฒนาควรใช้ เริ่มจากติดตั้งด้วย Docker เลือกชนิดข้อมูลให้เหมาะ รวมถึง uuidv7() และ Virtual Generated Column ที่มาใหม่ ออกแบบ Schema ที่ปกป้องข้อมูลด้วย Constraint และเขียน Modern SQL ทั้ง CTE, Window Function, MERGE, RETURNING OLD/NEW และ JSONB จากนั้นเจาะเรื่องประสิทธิภาพด้วย EXPLAIN, Index แบบต่าง ๆ, pg_stat_statements, Transaction และ Locking ก่อนนำทั้งหมดไปใช้ในแอปจริงผ่าน Node.js, Prisma หรือ Drizzle พร้อม Row-Level Security, LISTEN/NOTIFY และ pgvector แล้วปิดท้ายด้วยโปรเจกต์ออกแบบและปรับจูนฐานข้อมูลของแอปตั้งแต่ต้นจนจบ (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สิ่งที่คุณจะได้รับ

  • ติดตั้งและใช้งาน PostgreSQL 18 ด้วย Docker ร่วมกับ psql, pgAdmin 4 หรือ DBeaver ได้
  • เลือกชนิดข้อมูลและออกแบบ Schema ที่ใช้ Constraint ปกป้องความถูกต้องของข้อมูล
  • เขียน Modern SQL ทั้ง CTE, Window Function, LATERAL, MERGE และ ON CONFLICT ได้คล่อง
  • จัดเก็บและค้นหาข้อมูล JSONB และ Full-Text Search ได้อย่างมีประสิทธิภาพ
  • อ่านแผนการทำงานจาก EXPLAIN และออกแบบ Index ให้ตรงกับรูปแบบ Query
  • เข้าใจ Transaction, MVCC, Isolation Level และหลีกเลี่ยง Deadlock ได้
  • เชื่อมต่อจากแอปอย่างปลอดภัยผ่าน Connection Pool, ORM และ Migration
  • ใช้ Row-Level Security, LISTEN/NOTIFY และ pgvector กับแอปจริงได้

หลักสูตรนี้เหมาะสำหรับ

  • Backend และ Full-stack Developer ที่ใช้ PostgreSQL หรือกำลังจะเริ่มใช้ในโปรเจกต์
  • นักพัฒนาที่ย้ายมาจาก MySQL หรือ SQL Server และอยากใช้ความสามารถของ PostgreSQL ให้เต็มที่
  • Data Engineer และ API Engineer ที่ต้องเขียน Query และดูแลประสิทธิภาพของฐานข้อมูล
  • Tech Lead ที่ต้องรีวิวการออกแบบ Schema, Migration และ Query ของทีม
  • ผู้ที่ต้องการต่อยอดจาก SQL พื้นฐานไปสู่การใช้งานฐานข้อมูลในระบบ Production

พื้นฐานของผู้เข้าอบรม

  • เขียน SQL พื้นฐานได้ เช่น SELECT, JOIN, GROUP BY, INSERT และ UPDATE
  • เขียนโปรแกรมได้อย่างน้อยหนึ่งภาษา หากคุ้นเคย JavaScript หรือ TypeScript จะเป็นประโยชน์
  • ใช้ Command Line และ Git ขั้นพื้นฐานได้
  • โน้ตบุ๊กที่ติดตั้ง Docker Desktop, Node.js และ VS Code ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ที่มาแทนหลักสูตร PostgreSQL สำหรับนักพัฒนารุ่นเดิม เนื้อหาเขียนใหม่ทั้งหมดและอัปเดตให้ตรงกับ PostgreSQL 18 อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab บนฐานข้อมูลร้านค้าออนไลน์จำลองชุดเดียวตลอดหลักสูตร ระดับ Intermediate ทุก Lab ทำงานบนเครื่องของผู้เรียนด้วย Docker

และใช้เครื่องมือโอเพนซอร์สทั้งหมด หลักสูตรเน้นมุมมองของนักพัฒนาแอป ทั้งการออกแบบ Schema การเขียน SQL การปรับประสิทธิภาพ และการใช้ฐานข้อมูลจากโค้ด ไม่ครอบคลุมงานดูแลระบบระดับ DBA เช่น Replication หรือ Backup แบบ Production ผู้เรียนจะได้ Lab Guide ไฟล์ SQL และโค้ดตัวอย่างครบทุก Lab และไฟล์ docker-compose สำหรับ PostgreSQL 18, PgBouncer และ pgAdmin กลับไปใช้งานต่อ

Day 1 พื้นฐานที่แน่นและ Modern SQL

Section 1: Lab: เริ่มต้น PostgreSQL 18 ด้วย Docker

  • ทำไมนักพัฒนาเลือก PostgreSQL และจุดต่างจาก MySQL กับ SQL Server
  • ของใหม่ใน PostgreSQL 18 ที่นักพัฒนาควรรู้ และภาพรวม PostgreSQL 19 ที่กำลังจะมา
  • ติดตั้ง PostgreSQL 18 ด้วย Docker Compose พร้อม Volume และค่าเริ่มต้นที่เหมาะสม
  • ใช้งาน psql อย่างคล่อง และจัดการฐานข้อมูลผ่าน pgAdmin 4 หรือ DBeaver
  • Database, Schema, Role และสิทธิ์พื้นฐานสำหรับแอป

Section 2: ชนิดข้อมูลที่นักพัฒนาต้องเลือกให้ถูก

  • Primary Key แบบ Identity Column เทียบกับ uuid และ uuidv7() ใน PostgreSQL 18
  • numeric เทียบกับ float สำหรับเงิน และ timestamptz กับปัญหา Time Zone
  • text, varchar และ Collation ที่มีผลต่อการเรียงและค้นหาภาษาไทย
  • Array, Enum, Range และ Domain พร้อมข้อควรระวังในการใช้งาน
  • หลุมพรางที่พบบ่อยเมื่อย้ายชนิดข้อมูลมาจาก MySQL หรือ SQL Server

Section 3: ออกแบบ Schema และ Constraint

  • Normalization แบบพอดี และจุดที่ควรยอม Denormalize
  • ปกป้องข้อมูลด้วย NOT NULL, CHECK, UNIQUE และ Foreign Key พร้อม ON DELETE
  • Exclusion Constraint ป้องกันการจองช่วงเวลาซ้อนกัน
  • Generated Column แบบ Virtual (ค่าเริ่มต้นใน PostgreSQL 18) เทียบกับ Stored
  • Lab: ออกแบบ Schema ร้านค้าออนไลน์พร้อม Constraint ครบชุด

Section 4: Lab: Modern SQL ที่ใช้งานจริง

  • CTE และ Recursive CTE สำหรับข้อมูลแบบลำดับชั้น
  • Window Function: ROW_NUMBER, RANK, LAG, LEAD และยอดสะสม
  • LATERAL JOIN, FILTER และ GROUPING SETS สำหรับรายงานหลายมิติ
  • INSERT ... ON CONFLICT และ MERGE พร้อม MERGE ... RETURNING
  • RETURNING แบบใหม่ที่อ้างค่า OLD และ NEW ได้ใน PostgreSQL 18

Section 5: Lab: JSONB และ Full-Text Search

  • เมื่อไรควรเก็บเป็น JSONB และเมื่อไรควรแยกเป็นคอลัมน์
  • Operator ของ JSONB, jsonpath และการทำ GIN Index
  • แปลง JSON เป็นตารางด้วย JSON_TABLE และสร้าง JSON ด้วย SQL/JSON Constructor
  • Full-Text Search เบื้องต้น: tsvector, tsquery และการจัดอันดับผลลัพธ์
  • Lab: ค้นหาสินค้าจากคุณสมบัติใน JSONB และข้อความรายละเอียด
Day 2 ประสิทธิภาพ Transaction และ Logic ในฐานข้อมูล

Section 6: Query Planner และ EXPLAIN

  • Planner เลือกแผนอย่างไร: สถิติ, Cost และ ANALYZE
  • อ่าน EXPLAIN (ANALYZE, BUFFERS) ทีละบรรทัดให้เห็นจุดที่ช้า
  • Seq Scan, Index Scan, Bitmap Scan และวิธี Join แบบต่าง ๆ
  • เปิด pg_stat_statements เพื่อหา Query ที่กินเวลารวมมากที่สุด
  • Lab: ไล่หา Query ช้าจากแอปตัวอย่างแล้ววัดผลก่อนและหลังแก้

Section 7: Lab: ออกแบบ Index ให้ตรงกับ Query

  • B-tree Index แบบ Composite และลำดับคอลัมน์ที่ถูกต้อง
  • Partial, Expression และ Covering Index ด้วย INCLUDE
  • B-tree Skip Scan ใน PostgreSQL 18 และผลต่อการออกแบบ Index
  • เลือก GIN, GiST หรือ BRIN ให้เหมาะกับชนิดข้อมูล
  • สาเหตุที่ Index ไม่ถูกใช้ และต้นทุนของ Index ที่มากเกินไป

Section 8: Transaction, MVCC และ Locking

  • MVCC ทำงานอย่างไร และทำไมต้องมี VACUUM
  • Isolation Level: Read Committed, Repeatable Read และ Serializable
  • Row Lock, SELECT ... FOR UPDATE และการหา Lock ที่ค้างอยู่
  • สาเหตุของ Deadlock และวิธีออกแบบโค้ดให้หลีกเลี่ยง
  • Lab: สร้าง Job Queue ด้วย FOR UPDATE SKIP LOCKED

Section 9: PL/pgSQL, Procedure และ Trigger

  • เขียน Function และ Procedure ด้วย PL/pgSQL พร้อมจัดการ Error
  • Trigger สำหรับ Audit Log และการอัปเดต updated_at
  • Function แบบ SQL เทียบกับ PL/pgSQL และเรื่อง Volatility
  • เกณฑ์ตัดสินใจว่า Logic ใดควรอยู่ในฐานข้อมูล และส่วนใดควรอยู่ในแอป

Section 10: View, Materialized View และ Partitioning

  • View สำหรับซ่อนความซับซ้อนและจำกัดการมองเห็นข้อมูล
  • Materialized View และการ REFRESH ... CONCURRENTLY
  • Declarative Partitioning แบบ Range และ List สำหรับตารางใหญ่
  • Partition Pruning และการเลือก Partition Key ให้เหมาะกับ Query
  • Lab: แบ่ง Partition ตาราง Log ตามเดือนและทดสอบผล
Day 3 PostgreSQL ในแอปพลิเคชันจริง

Section 11: เชื่อมต่อจากแอปอย่างปลอดภัยและเร็ว

  • ต้นทุนของ Connection และแนวคิด Connection Pooling
  • PgBouncer จากมุมนักพัฒนา: Session กับ Transaction Mode และข้อจำกัด
  • Prepared Statement, Parameterized Query และการป้องกัน SQL Injection
  • ตั้งค่า Timeout และจัดการ Error จากฐานข้อมูลในโค้ด
  • Lab: วาง PgBouncer หน้าแอปแล้วทดสอบเมื่อมีคำขอเข้าพร้อมกันจำนวนมาก

Section 12: Lab: ORM และ Migration ด้วย Node.js

  • เชื่อม PostgreSQL กับ Node.js และ TypeScript ผ่าน Prisma และ Drizzle
  • จัดการ Migration แบบมีเวอร์ชัน และการแก้ Schema โดยไม่ล็อกตารางนาน
  • ปัญหา N+1 Query และวิธีตรวจจับจาก Log
  • เมื่อไรควรเลิกพึ่ง ORM แล้วเขียน Raw SQL อย่างปลอดภัย

Section 13: Lab: Row-Level Security และ LISTEN/NOTIFY

  • ออกแบบแอป Multi-tenant ด้วย Row-Level Security
  • เขียน Policy และส่งค่า Tenant ของผู้ใช้จากแอปเข้าฐานข้อมูล
  • ทดสอบว่าข้อมูลของแต่ละ Tenant ไม่รั่วข้ามกัน
  • LISTEN/NOTIFY สำหรับแจ้งเตือนการเปลี่ยนแปลงแบบ Real-time ไปยังแอป

Section 14: pgvector และ AI Assistant สำหรับ SQL

  • เก็บ Embedding ในคอลัมน์ vector ด้วย Extension pgvector
  • สร้าง HNSW Index และค้นหาความคล้ายด้วย Distance Operator
  • รวม Vector Search กับเงื่อนไข SQL ปกติในแอปเดียว
  • ใช้ AI Assistant ช่วยเขียนและอธิบาย SQL พร้อมตรวจผลก่อนใช้จริง
  • Lab: ค้นหาสินค้าที่คล้ายกันจาก Embedding ของรายละเอียดสินค้า

Section 15: Lab: Testing และ Capstone Project

  • ทดสอบโค้ดที่ใช้ฐานข้อมูลด้วย Docker และสคริปต์ Seed ที่รันซ้ำได้
  • Capstone: ออกแบบฐานข้อมูลของแอปขนาดเล็กตั้งแต่ Schema ถึง Index
  • วัดประสิทธิภาพด้วย EXPLAIN และปรับจูนจนผ่านเกณฑ์ที่ตั้งไว้
  • นำเสนอผลงาน รีวิวร่วมกัน และสรุป Checklist ก่อนขึ้น Production

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

อ่านผล EXPLAIN ANALYZE ใน PostgreSQL ต้องดูอะไรบ้าง

ให้อ่านจากโหนดที่ซ้อนลึกที่สุดขึ้นมา เพราะเป็นขั้นที่ทำงานก่อน แล้วเทียบจำนวนแถวที่ Planner ประมาณไว้กับจำนวนแถวจริง (actual rows) ถ้าต่างกันมากมักแปลว่าสถิติไม่ทันสมัยและควรรัน ANALYZE จากนั้นหาโหนดที่ใช้เวลา actual time มากที่สุด และดูว่าเป็น Seq Scan บนตารางใหญ่หรือไม่ ส่วนตัวเลือก BUFFERS ช่วยบอกว่าอ่านข้อมูลจากหน่วยความจำหรือจากดิสก์มากเพียงใด

เมื่อไรควรเก็บข้อมูลเป็น JSONB แทนการแยกเป็นคอลัมน์

JSONB เหมาะกับข้อมูลที่โครงสร้างไม่แน่นอนหรือต่างกันในแต่ละแถว เช่น คุณสมบัติของสินค้าแต่ละประเภท หรือข้อมูลที่รับมาจาก API ภายนอก ส่วนข้อมูลที่ทุกแถวมีเหมือนกัน ต้องใช้ Constraint หรือ Foreign Key หรือใช้กรองและ JOIN บ่อย ควรแยกเป็นคอลัมน์ปกติ เมื่อใช้ JSONB ควรสร้าง GIN Index เพื่อให้ค้นด้วย Operator อย่าง @> ได้เร็ว

ทำ Row-Level Security สำหรับแอป Multi-tenant ใน PostgreSQL อย่างไร

เริ่มจากเพิ่มคอลัมน์ tenant_id ในทุกตารางที่ต้องแยกข้อมูล แล้วเปิด ROW LEVEL SECURITY ให้ตารางเหล่านั้น จากนั้นเขียน Policy ที่เทียบ tenant_id กับค่าที่แอปส่งเข้ามาในแต่ละ Transaction เช่น ผ่าน set_config และ current_setting ให้แอปเชื่อมต่อด้วย Role ที่ไม่ใช่เจ้าของตาราง เพราะเจ้าของตารางข้าม Policy ได้ แล้วทดสอบว่าแต่ละ Tenant มองไม่เห็นข้อมูลของกัน หลักสูตรนี้ฝึกทำขั้นตอนนี้ใน Lab

หลักสูตร PostgreSQL for Developers เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับ Backend และ Full-stack Developer ที่ใช้หรือกำลังจะใช้ PostgreSQL นักพัฒนาที่ย้ายมาจาก MySQL หรือ SQL Server รวมถึง Data Engineer และ Tech Lead ที่ต้องรีวิว Schema และ Query ของทีม ควรเขียน SQL พื้นฐานอย่าง SELECT JOIN และ GROUP BY ได้ เขียนโปรแกรมได้อย่างน้อยหนึ่งภาษา และใช้ Command Line กับ Git ขั้นพื้นฐานได้

เรียนจบหลักสูตร PostgreSQL for Developers แล้วทำอะไรได้บ้าง

ออกแบบ Schema ที่ใช้ Constraint ปกป้องข้อมูล เขียน SQL สมัยใหม่อย่าง CTE Window Function และ MERGE อ่าน EXPLAIN เพื่อเลือก Index ให้ตรงกับ Query และเชื่อมฐานข้อมูลกับแอปผ่าน Connection Pool และ ORM อย่างปลอดภัย พร้อมใช้ Row-Level Security และ pgvector ในแอปจริง ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

ต้องเตรียมอะไรมาเรียนหลักสูตร PostgreSQL for Developers

ควรมีโน้ตบุ๊กที่ติดตั้ง Docker Desktop, Node.js และ VS Code ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม เพราะทุก Lab ทำบนเครื่องของผู้เรียนด้วย Docker โดยใช้ PostgreSQL 18 ร่วมกับ psql และ pgAdmin 4 หรือ DBeaver ผู้เรียนจะได้ Lab Guide ไฟล์ SQL โค้ดตัวอย่าง และไฟล์ docker-compose สำหรับ PostgreSQL 18 PgBouncer และ pgAdmin กลับไปใช้งานต่อ