โลโก้ SQLite
ฐานข้อมูลPublic Domain (โอเพนซอร์ส)

SQLite คืออะไร และใช้งานบนเซิร์ฟเวอร์อย่างไร

SQLite คือฐานข้อมูลที่เก็บทุกอย่างไว้ในไฟล์เดียวและทำงานอยู่ในกระบวนการเดียวกับแอป ไม่ต้องติดตั้งเซิร์ฟเวอร์ฐานข้อมูลแยก จึงเป็นฐานข้อมูลที่ถูกใช้งานมากที่สุดในโลกเมื่อนับรวมอุปกรณ์ทุกชนิด

หมวดหมู่
ฐานข้อมูล
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
ใช้ทรัพยากรของแอปเอง · RAM ไม่ต้องเผื่อเพิ่ม
ไลเซนส์
Public Domain (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

SQLite คืออะไร

SQLite ไม่ใช่ระบบแบบไคลเอนต์และเซิร์ฟเวอร์ แต่เป็นไลบรารีที่แอปเรียกใช้โดยตรงเพื่ออ่านเขียนไฟล์ฐานข้อมูล ผลคือไม่มีบริการให้ดูแล ไม่มีพอร์ตให้เปิด และสำรองข้อมูลเท่ากับคัดลอกไฟล์

ความเรียบง่ายนี้ทำให้เหมาะมากกับแอปบนอุปกรณ์ เว็บที่มีผู้ใช้น้อย เครื่องมือภายใน และการเก็บข้อมูลตั้งค่าของระบบ ซึ่งเป็นงานที่การตั้งเซิร์ฟเวอร์ฐานข้อมูลเต็มรูปแบบเป็นภาระเกินจำเป็น

ข้อจำกัดที่ต้องรู้คือการเขียนพร้อมกัน SQLite อนุญาตให้เขียนได้ครั้งละหนึ่งรายการ ระบบที่มีผู้ใช้เขียนข้อมูลพร้อมกันจำนวนมากจึงเริ่มติดขัด และควรย้ายไปใช้ฐานข้อมูลแบบเซิร์ฟเวอร์เมื่อถึงจุดนั้น

แผนผังการวางระบบ SQLite บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต ไม่มี ตัว SQLite และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ ใช้ทรัพยากรของแอปเอง แรม ไม่ต้องเผื่อเพิ่ม และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
SQLite ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ SQLite

ไฟล์เดียวจบ

ย้ายฐานข้อมูลเท่ากับคัดลอกไฟล์ และสำรองข้อมูลก็ทำได้ในขั้นตอนเดียว

ไม่ต้องดูแลบริการ

ไม่มีเซิร์ฟเวอร์ให้ติดตั้ง ไม่มีพอร์ตให้ป้องกัน จึงลดงานดูแลลงมาก

รองรับ SQL มาตรฐาน

ใช้คำสั่งที่คุ้นเคยได้ และย้ายไปฐานข้อมูลอื่นภายหลังได้ไม่ยากนัก

เร็วมากสำหรับการอ่าน

อ่านข้อมูลได้เร็วเพราะไม่มีค่าใช้จ่ายของการสื่อสารข้ามกระบวนการ

เสถียรและทดสอบอย่างหนัก

เป็นซอฟต์แวร์ที่ผ่านการทดสอบครอบคลุมที่สุดตัวหนึ่งและใช้อยู่ในอุปกรณ์นับพันล้านเครื่อง

ใช้ SQLite ทำอะไรได้บ้าง

  • เครื่องมือภายในและระบบที่มีผู้ใช้ไม่มาก
  • แอปที่ต้องเก็บข้อมูลบนอุปกรณ์ปลายทาง
  • เก็บข้อมูลตั้งค่าและข้อมูลชั่วคราวของบริการบนเซิร์ฟเวอร์
  • ต้นแบบระบบที่ยังไม่ต้องการฐานข้อมูลเต็มรูปแบบ

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ SQLite 3 ระดับ เริ่มจาก ใช้ทรัพยากรของแอปเอง แรม ไม่ต้องเผื่อเพิ่ม ดิสก์ ตามขนาดข้อมูล ไปจนถึง 4 vCPU แรม 8 GB ดิสก์ NVMe 80 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
ใช้ร่วมกับแอปไม่มีบริการแยกให้จัดสรรทรัพยากรใช้ทรัพยากรของแอปเองไม่ต้องเผื่อเพิ่มตามขนาดข้อมูล
แนะนำเว็บหรือเครื่องมือภายในที่ใช้ SQLite เป็นฐานข้อมูล2 vCPU4 GBNVMe 40 GB
เมื่อเริ่มไม่พอถึงจุดนี้ควรพิจารณาย้ายไป PostgreSQL หรือ MariaDB4 vCPU8 GBNVMe 80 GB

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง SQLite บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • ไลบรารี SQLite ซึ่งมากับภาษาโปรแกรมส่วนใหญ่อยู่แล้ว
  • ดิสก์ที่เชื่อถือได้และมีการสำรองข้อมูล
  • สิทธิ์ไฟล์ที่ตั้งถูกต้องเพื่อไม่ให้ผู้อื่นอ่านไฟล์ฐานข้อมูลได้

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้งเครื่องมือบรรทัดคำสั่ง

    sudo apt update
    sudo apt -y install sqlite3
  2. 2

    สร้างฐานข้อมูลและตาราง

    sqlite3 /var/lib/app/data.db "CREATE TABLE notes (id INTEGER PRIMARY KEY, body TEXT, created_at TEXT);"
  3. 3

    เปิดโหมดที่รองรับการอ่านพร้อมเขียนได้ดีขึ้น

    โหมดนี้ทำให้การอ่านไม่ถูกบล็อกขณะมีการเขียน ซึ่งช่วยเรื่องประสิทธิภาพอย่างมากบนเว็บ

    sqlite3 /var/lib/app/data.db "PRAGMA journal_mode=WAL;"
  4. 4

    ตั้งสิทธิ์ไฟล์ให้ปลอดภัย

    ไฟล์ฐานข้อมูลต้องอ่านเขียนได้เฉพาะผู้ใช้ที่รันแอป และต้องไม่อยู่ในโฟลเดอร์ที่เว็บเซิร์ฟเวอร์เปิดให้ดาวน์โหลด

    sudo chown appuser:appuser /var/lib/app/data.db
    sudo chmod 600 /var/lib/app/data.db
  5. 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 ยืดหยุ่นกว่า จึงควรตรวจข้อมูลหลังย้ายให้ครบ

รองรับข้อมูลขนาดใหญ่แค่ไหน

รองรับไฟล์ขนาดใหญ่มากในทางทฤษฎี แต่ข้อจำกัดจริงมักมาจากการเขียนพร้อมกันมากกว่าขนาดข้อมูล ระบบที่มีข้อมูลใหญ่แต่อ่านเป็นหลักยังใช้ได้ดี

บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง

ให้เราติดตั้ง SQLite ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด