SQLite คืออะไร และใช้งานบนเซิร์ฟเวอร์อย่างไร
SQLite คือฐานข้อมูลที่เก็บทุกอย่างไว้ในไฟล์เดียวและทำงานอยู่ในกระบวนการเดียวกับแอป ไม่ต้องติดตั้งเซิร์ฟเวอร์ฐานข้อมูลแยก จึงเป็นฐานข้อมูลที่ถูกใช้งานมากที่สุดในโลกเมื่อนับรวมอุปกรณ์ทุกชนิด
- หมวดหมู่
- ฐานข้อมูล
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- ใช้ทรัพยากรของแอปเอง · RAM ไม่ต้องเผื่อเพิ่ม
- ไลเซนส์
- Public Domain (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
SQLite คืออะไร
SQLite ไม่ใช่ระบบแบบไคลเอนต์และเซิร์ฟเวอร์ แต่เป็นไลบรารีที่แอปเรียกใช้โดยตรงเพื่ออ่านเขียนไฟล์ฐานข้อมูล ผลคือไม่มีบริการให้ดูแล ไม่มีพอร์ตให้เปิด และสำรองข้อมูลเท่ากับคัดลอกไฟล์
ความเรียบง่ายนี้ทำให้เหมาะมากกับแอปบนอุปกรณ์ เว็บที่มีผู้ใช้น้อย เครื่องมือภายใน และการเก็บข้อมูลตั้งค่าของระบบ ซึ่งเป็นงานที่การตั้งเซิร์ฟเวอร์ฐานข้อมูลเต็มรูปแบบเป็นภาระเกินจำเป็น
ข้อจำกัดที่ต้องรู้คือการเขียนพร้อมกัน SQLite อนุญาตให้เขียนได้ครั้งละหนึ่งรายการ ระบบที่มีผู้ใช้เขียนข้อมูลพร้อมกันจำนวนมากจึงเริ่มติดขัด และควรย้ายไปใช้ฐานข้อมูลแบบเซิร์ฟเวอร์เมื่อถึงจุดนั้น
ความสามารถเด่นของ SQLite
ไฟล์เดียวจบ
ย้ายฐานข้อมูลเท่ากับคัดลอกไฟล์ และสำรองข้อมูลก็ทำได้ในขั้นตอนเดียว
ไม่ต้องดูแลบริการ
ไม่มีเซิร์ฟเวอร์ให้ติดตั้ง ไม่มีพอร์ตให้ป้องกัน จึงลดงานดูแลลงมาก
รองรับ SQL มาตรฐาน
ใช้คำสั่งที่คุ้นเคยได้ และย้ายไปฐานข้อมูลอื่นภายหลังได้ไม่ยากนัก
เร็วมากสำหรับการอ่าน
อ่านข้อมูลได้เร็วเพราะไม่มีค่าใช้จ่ายของการสื่อสารข้ามกระบวนการ
เสถียรและทดสอบอย่างหนัก
เป็นซอฟต์แวร์ที่ผ่านการทดสอบครอบคลุมที่สุดตัวหนึ่งและใช้อยู่ในอุปกรณ์นับพันล้านเครื่อง
ใช้ SQLite ทำอะไรได้บ้าง
- เครื่องมือภายในและระบบที่มีผู้ใช้ไม่มาก
- แอปที่ต้องเก็บข้อมูลบนอุปกรณ์ปลายทาง
- เก็บข้อมูลตั้งค่าและข้อมูลชั่วคราวของบริการบนเซิร์ฟเวอร์
- ต้นแบบระบบที่ยังไม่ต้องการฐานข้อมูลเต็มรูปแบบ
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| ใช้ร่วมกับแอปไม่มีบริการแยกให้จัดสรรทรัพยากร | ใช้ทรัพยากรของแอปเอง | ไม่ต้องเผื่อเพิ่ม | ตามขนาดข้อมูล |
| แนะนำเว็บหรือเครื่องมือภายในที่ใช้ SQLite เป็นฐานข้อมูล | 2 vCPU | 4 GB | NVMe 40 GB |
| เมื่อเริ่มไม่พอถึงจุดนี้ควรพิจารณาย้ายไป PostgreSQL หรือ MariaDB | 4 vCPU | 8 GB | NVMe 80 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง SQLite บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- ไลบรารี SQLite ซึ่งมากับภาษาโปรแกรมส่วนใหญ่อยู่แล้ว
- ดิสก์ที่เชื่อถือได้และมีการสำรองข้อมูล
- สิทธิ์ไฟล์ที่ตั้งถูกต้องเพื่อไม่ให้ผู้อื่นอ่านไฟล์ฐานข้อมูลได้
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้งเครื่องมือบรรทัดคำสั่ง
sudo apt update sudo apt -y install sqlite3 - 2
สร้างฐานข้อมูลและตาราง
sqlite3 /var/lib/app/data.db "CREATE TABLE notes (id INTEGER PRIMARY KEY, body TEXT, created_at TEXT);" - 3
เปิดโหมดที่รองรับการอ่านพร้อมเขียนได้ดีขึ้น
โหมดนี้ทำให้การอ่านไม่ถูกบล็อกขณะมีการเขียน ซึ่งช่วยเรื่องประสิทธิภาพอย่างมากบนเว็บ
sqlite3 /var/lib/app/data.db "PRAGMA journal_mode=WAL;" - 4
ตั้งสิทธิ์ไฟล์ให้ปลอดภัย
ไฟล์ฐานข้อมูลต้องอ่านเขียนได้เฉพาะผู้ใช้ที่รันแอป และต้องไม่อยู่ในโฟลเดอร์ที่เว็บเซิร์ฟเวอร์เปิดให้ดาวน์โหลด
sudo chown appuser:appuser /var/lib/app/data.db sudo chmod 600 /var/lib/app/data.db - 5
ตั้งการสำรองข้อมูลที่ปลอดภัย
ใช้คำสั่งสำรองของ SQLite แทนการคัดลอกไฟล์ขณะแอปกำลังเขียน เพื่อให้ได้สำเนาที่สมบูรณ์
0 3 * * * sqlite3 /var/lib/app/data.db ".backup /var/backups/app-$(date +\%F).db"
ถ้าระบบเริ่มมีผู้ใช้เขียนข้อมูลพร้อมกันจนเห็นอาการค้างหรือฐานข้อมูลถูกล็อก นั่นคือสัญญาณว่าถึงเวลาย้ายไป PostgreSQL หรือ MariaDB แล้ว
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| ไม่มี | ไม่มี | SQLite ทำงานผ่านไฟล์โดยตรง จึงไม่มีพอร์ตให้เปิดหรือป้องกัน |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- วางไฟล์ฐานข้อมูลไว้นอกโฟลเดอร์ที่เว็บเซิร์ฟเวอร์เปิดให้เข้าถึง
- ตั้งสิทธิ์ไฟล์ให้เฉพาะผู้ใช้ที่รันแอปอ่านเขียนได้
- ใช้คำสั่งสำรองของ SQLite แทนการคัดลอกไฟล์สด
- เข้ารหัสดิสก์หรือไฟล์สำรองเมื่อเก็บข้อมูลส่วนบุคคล
ทำไมควรรัน SQLite บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
เหมาะกับเครื่องมือภายในและเว็บขนาดเล็กบน Cloud Server สเปกต่ำ ซึ่งช่วยลดค่าใช้จ่ายและงานดูแล
เมื่อระบบโตจนต้องเปลี่ยนฐานข้อมูล ย้ายไป Cloud Database Server ได้โดยไม่ต้องเปลี่ยนสถาปัตยกรรมทั้งหมด
สำรองไฟล์ฐานข้อมูลขึ้น Object Storage ในไทยได้ง่ายเพราะเป็นไฟล์เดียว
คำถามที่พบบ่อยเกี่ยวกับ SQLite
ใช้ SQLite บนเว็บ Production ได้ไหม
ได้ถ้าเว็บมีการเขียนข้อมูลไม่ถี่และผู้ใช้ไม่มาก เช่น เครื่องมือภายในหรือเว็บเนื้อหา แต่ถ้ามีผู้ใช้เขียนพร้อมกันจำนวนมาก ควรใช้ฐานข้อมูลแบบเซิร์ฟเวอร์ตั้งแต่ต้น
ย้ายจาก SQLite ไป PostgreSQL ยากไหม
ไม่ยากถ้าโค้ดใช้คำสั่ง SQL มาตรฐานและใช้ตัวเชื่อมฐานข้อมูลที่รองรับทั้งสองแบบ สิ่งที่ต้องระวังคือชนิดข้อมูลบางอย่างที่ SQLite ยืดหยุ่นกว่า จึงควรตรวจข้อมูลหลังย้ายให้ครบ
รองรับข้อมูลขนาดใหญ่แค่ไหน
รองรับไฟล์ขนาดใหญ่มากในทางทฤษฎี แต่ข้อจำกัดจริงมักมาจากการเขียนพร้อมกันมากกว่าขนาดข้อมูล ระบบที่มีข้อมูลใหญ่แต่อ่านเป็นหลักยังใช้ได้ดี
ทางเลือกอื่นที่คล้ายกับ SQLite
แอปอื่นในหมวด ฐานข้อมูล
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง SQLite ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด