เลือกฐานข้อมูลแบบไหนดี: PostgreSQL, MySQL, MongoDB หรือ Redis

PostgreSQL, MySQL, MariaDB, MongoDB และ Redis ต่างกันยังไง เว็บของคุณควรใช้ตัวไหน และ BrewInTH เชื่อมฐานข้อมูลให้แอปอัตโนมัติยังไง อ่านจบเลือกได้ทันที
ตอนสร้างโปรเจกต์บน BrewInTH จะมีช่อง ฐานข้อมูล ให้เลือก PostgreSQL, MySQL, MariaDB, MongoDB และช่องติ๊ก Redis หลายคนหยุดตรงนี้ เพราะไม่แน่ใจว่าเว็บของตัวเองควรใช้แบบไหน เลือกผิดแล้วจะแก้ได้ไหม หรือจำเป็นต้องมีฐานข้อมูลตั้งแต่แรกหรือเปล่า
บทความนี้อธิบายแบบภาษาคนว่าแต่ละตัวต่างกันยังไง เหมาะกับงานแบบไหน AI เชื่อมต่อให้ยังไง และมีข้อจำกัดอะไรที่ควรรู้ก่อนกดสร้าง
สรุปสั้นก่อนอ่าน
✅ ไม่แน่ใจ เลือก PostgreSQL ไว้ก่อน ใช้ได้กับงานเกือบทุกแบบ
✅ โค้ดเดิมเป็น PHP หรือ Laravel ที่เขียนกับ MySQL ให้เลือก MySQL หรือ MariaDB
✅ ข้อมูลเป็นเอกสาร JSON ที่รูปร่างเปลี่ยนบ่อย เลือก MongoDB
✅ Redis เป็นตัวเสริมสำหรับ cache, session และคิวงาน ไม่ใช่ที่เก็บข้อมูลหลัก
✅ โปรเจกต์ละ 1 ฐานหลัก + Redis ได้อีก 1 ตัว ระบบใส่ค่าเชื่อมต่อให้แอปอัตโนมัติ
เว็บของคุณต้องมีฐานข้อมูลไหม
ไม่ใช่ทุกเว็บต้องมี ลองถามตัวเองข้อเดียวว่า เว็บต้องจำอะไรที่ผู้ใช้กรอกเข้ามาไหม
- ไม่ต้องจำ เช่น หน้าแนะนำร้าน พอร์ตโฟลิโอ landing page ที่ปุ่มพาไป LINE → เลือก ยังไม่ใช้ฐานข้อมูล ได้เลย
- ต้องจำ เช่น ระบบสมาชิก ฟอร์มจองคิว ตะกร้าสินค้า บทความที่แก้จากหลังบ้าน แบบสอบถาม → ต้องมีฐานข้อมูล
ถ้าตอนแรกยังไม่ใช้ แล้ววันหลังอยากเพิ่ม ก็สร้างทีหลังได้ในหน้า ฐานข้อมูล ของโปรเจกต์ ไม่ต้องสร้างโปรเจกต์ใหม่
รู้จักทั้ง 5 ตัวแบบสั้น ๆ

PostgreSQL: ค่าเริ่มต้นที่ปลอดภัยที่สุด
PostgreSQL เป็นฐานข้อมูลแบบตาราง (SQL) ที่ครบเครื่อง รองรับทั้งข้อมูลแบบตารางและ JSON เครื่องมือยอดนิยมอย่าง Next.js + Prisma, Django, FastAPI, Rails หรือ Node.js ส่วนใหญ่ใช้ได้ทันที และเป็นตัวเลือกแรกในหน้าสร้างโปรเจกต์ของ BrewInTH ด้วย
เหมาะกับ: เว็บที่เริ่มใหม่ ระบบจอง ระบบสมาชิก ร้านค้าเล็ก ๆ ระบบหลังบ้าน
MySQL และ MariaDB: เมื่อโค้ดเดิมเขียนมากับ MySQL
MySQL เป็นฐานข้อมูล SQL ที่คนใช้มากที่สุดตัวหนึ่ง โดยเฉพาะในโลก PHP ส่วน MariaDB แตกสายมาจาก MySQL และใช้คำสั่งแทบเหมือนกัน ถ้าโค้ดหรือบทเรียนที่คุณใช้เขียนกับ MySQL มาอยู่แล้ว เลือกตัวนี้จะราบรื่นที่สุด ไม่ต้องให้ AI แปลงคำสั่ง SQL
เหมาะกับ: โปรเจกต์ PHP เดิม, Laravel ที่ตั้งค่าไว้เป็น mysql, ระบบที่ย้ายมาจากโฮสต์ที่ใช้ MySQL
MongoDB: เก็บข้อมูลเป็นเอกสาร
MongoDB ไม่เก็บเป็นตาราง แต่เก็บเป็น "เอกสาร" คล้าย JSON แต่ละรายการมีช่องไม่เท่ากันได้ เหมาะกับแอป JavaScript ที่เขียนด้วย Mongoose หรือข้อมูลที่รูปร่างเปลี่ยนบ่อย
เหมาะกับ: แอป Node.js ที่ใช้ Mongoose อยู่แล้ว, เก็บ log หรือข้อมูลจาก API ภายนอกทั้งก้อน
Redis: ตัวช่วยให้เร็ว ไม่ใช่ที่เก็บหลัก
Redis เก็บข้อมูลในหน่วยความจำ จึงเร็วมาก ใช้เป็น cache (จำผลลัพธ์ที่คำนวณแล้ว), session (สถานะการล็อกอิน) หรือ คิวงาน (งานที่ทำเบื้องหลัง เช่น ส่งอีเมล) บน BrewInTH Redis ของแต่ละโปรเจกต์เป็นของโปรเจกต์นั้นทั้งตัว เมื่อหน่วยความจำเต็ม key ที่มีอายุ (TTL) จะถูกลบก่อน
เรื่องสำคัญ: Redis ไม่มีการสำรองข้อมูล เพราะเป็น cache ที่แอปสร้างใหม่ได้ ข้อมูลที่หายไม่ได้ต้องเก็บในฐานหลักเสมอ
ถ้ายังเลือกไม่ได้ ใช้กฎนี้
- มีโค้ดเดิมอยู่แล้ว → ดูว่าโค้ดเขียนกับฐานไหน แล้วเลือกตัวนั้น (ถาม AI ได้: "โปรเจกต์นี้ใช้ฐานข้อมูลอะไร")
- เริ่มใหม่หมด → PostgreSQL
- AI บอกว่าจะใช้ Mongoose หรือ MongoDB → MongoDB
- เว็บเริ่มช้าเพราะคนเยอะ หรือมีงานเบื้องหลัง → ติ๊ก Redis เพิ่ม
ถ้าจะให้ AI ช่วยตัดสินใจก่อนสร้างโปรเจกต์ ลองใช้ prompt นี้
ฉันกำลังจะสร้างโปรเจกต์บน BrewInTH ซึ่งมีฐานข้อมูลให้เลือก PostgreSQL, MySQL,
MariaDB, MongoDB และเพิ่ม Redis เป็น cache ได้
ช่วยดูโค้ดในโฟลเดอร์นี้ แล้วบอกว่าควรเลือกฐานข้อมูลตัวไหน เพราะอะไร
และต้องใช้ Redis หรือไม่ ตอบสั้น ๆ ไม่ต้องแก้โค้ด
ระบบเชื่อมฐานข้อมูลให้แอปยังไง
เมื่อฐานข้อมูลพร้อม BrewInTH จะเขียนค่าเชื่อมต่อลงในค่าตั้งแอป (secrets) ของโปรเจกต์ให้เอง แอปแค่อ่านค่าจากตัวแปรเหล่านี้ รหัสผ่านไม่ต้องไปอยู่ในโค้ด

- PostgreSQL →
DATABASE_URL - MySQL / MariaDB →
MYSQL_URL - MongoDB →
MONGODB_URLและMONGODB_URI - Redis →
REDIS_URL,REDIS_HOST,REDIS_PORT,REDIS_PASSWORD
ถ้า framework อ่านชื่ออื่น เช่น Laravel ที่อ่าน DB_HOST, DB_DATABASE ฯลฯ AI ที่ deploy ให้จะตั้งค่าเพิ่มในค่าตั้งแอปให้เองตามคู่มือของ BrewInTH
ฐานข้อมูลอยู่ในเครือข่ายภายในของโปรเจกต์ เชื่อมได้จากแอปที่รันบน BrewInTH ส่วนการดูข้อมูลจากภายนอก ใช้ ตัวจัดการฐานข้อมูล ในหน้า ฐานข้อมูล ของคอนโซล (ใช้ได้กับ PostgreSQL, MySQL และ MariaDB) หรือให้ AI สั่ง query ผ่านการเชื่อมต่อของมัน ส่วน MongoDB และ Redis ใช้งานผ่านแอปหรือคำสั่งในโปรเจกต์
ข้อจำกัดที่ควรรู้ก่อนเลือก
- โปรเจกต์ละ 1 ฐานหลัก (PostgreSQL, MySQL, MariaDB หรือ MongoDB อย่างใดอย่างหนึ่ง) ชื่อฐานตามชื่อโปรเจกต์ และเพิ่ม Redis ได้อีก 1 ตัว
- เปลี่ยนชนิดฐานหลักภายหลัง ต้องลบฐานเดิมก่อนแล้วสร้างใหม่ ข้อมูลเดิมไม่ย้ายตามไปเอง จึงควรเลือกให้ถูกตั้งแต่ต้น หรือให้ AI ย้ายข้อมูลให้ก่อนลบ
- จำนวนฐานหลักเท่ากับจำนวนโปรเจกต์ของแพ็กเกจ แพ็กเกจฟรีได้ 1 โปรเจกต์ + 1 ฐาน ถ้าต้องการเพิ่ม ซื้อบริการเสริม Extra project + database ในหน้าแพ็กเกจ ส่วน Redis ไม่นับรวม
- พื้นที่ฐานข้อมูล ตอนนี้ทุกแพ็กเกจให้ 512 MB ต่อฐาน ซึ่งพอสำหรับข้อความและตัวเลขจำนวนมาก แต่ไม่ควรเก็บไฟล์รูปหรือวิดีโอลงฐานข้อมูล
- การสำรองข้อมูล เป็นบริการเสริม Backups ใช้กับ PostgreSQL, MySQL, MariaDB และ MongoDB (สำรองรายวันและกดสำรองเองได้ กู้คืนได้จากหน้าฐานข้อมูล) ราคาดูได้ใน หน้าแพ็กเกจ
ดูวิดีโอประกอบ
▶ ตัวอย่างตั้งแต่สร้างโปรเจกต์จนเปิดเว็บ (1:30 นาที)
ดูบน YouTube
คำถามที่พบบ่อย
ไม่รู้เรื่องฐานข้อมูลเลย เลือกอะไรดี
เลือก PostgreSQL แล้วให้ AI จัดการที่เหลือ ทั้งการสร้างตาราง การเชื่อมต่อ และการ migrate AI ที่ deploy ผ่าน BrewInTH อ่านค่าเชื่อมต่อได้เอง
สร้างโปรเจกต์โดยไม่เลือกฐานข้อมูล แล้วเพิ่มทีหลังได้ไหม
ได้ เปิดหน้า ฐานข้อมูล เลือก ประเภทฐานข้อมูล แล้วกด สร้างฐานข้อมูล หรือบอก AI ในแชตว่าให้สร้างฐานข้อมูลให้
ใช้ PostgreSQL กับ MongoDB พร้อมกันในโปรเจกต์เดียวได้ไหม
ไม่ได้ โปรเจกต์หนึ่งมีฐานหลักได้ 1 ตัว ถ้าจำเป็นต้องใช้ทั้งสองแบบ ให้แยกเป็น 2 โปรเจกต์
Redis ใช้แทนฐานข้อมูลหลักได้ไหม
ไม่ควร Redis บน BrewInTH ไม่มีการสำรองข้อมูล และจะลบ key ที่มีอายุเมื่อหน่วยความจำเต็ม ใช้เป็นตัวช่วยคู่กับฐานหลักเท่านั้น
ต่อฐานข้อมูลจากโปรแกรมในคอมพิวเตอร์ของฉันได้ไหม
ฐานข้อมูลอยู่ในเครือข่ายภายในของโปรเจกต์ ใช้ ตัวจัดการฐานข้อมูล ในคอนโซลหรือให้ AI ดูข้อมูลให้แทน ถ้าต้องการไฟล์ข้อมูลทั้งหมด ใช้บริการเสริม Backups แล้วดาวน์โหลดไฟล์สำรองได้
สรุป
ถ้าไม่มีเหตุผลพิเศษ เริ่มที่ PostgreSQL ถ้าโค้ดเดิมเป็น MySQL ใช้ MySQL หรือ MariaDB ถ้าแอปเก็บข้อมูลแบบเอกสารใช้ MongoDB และเพิ่ม Redis เมื่อต้องการความเร็วหรือคิวงาน ที่เหลือ BrewInTH ใส่ค่าเชื่อมต่อให้ และ AI ของคุณจัดการตารางกับการ deploy ต่อได้เลย
