Hiệu năng của SQLite phụ thuộc vào cấu trúc dữ liệu, truy vấn, phần cứng, và cách thiết kế chỉ mục, chứ không chỉ đơn thuần là "bao nhiêu bản ghi thì bắt đầu chậm". Tuy nhiên, dưới đây là một số mốc tham khảo thực tế để bạn định lượng:


🚀 Khả năng lưu trữ của SQLite

  • Tối đa dung lượng 1 file database: ~281 TB (tùy theo hệ thống file và cài đặt).
  • Số bản ghi tối đa trong 1 bảng: Không giới hạn rõ ràng, thường thực tế là vài triệu đến hàng trăm triệu bản ghi.
  • Dung lượng 1 bản ghi tối đa: Tùy cấu hình, nhưng mặc định khoảng 1–2 MB/bản ghi.

⚙️ Khi nào SQLite bắt đầu chậm?

Số lượng bản ghiTình trạng hiệu năng
Dưới 10.000Nhanh, không vấn đề gì
10.000 – 100.000Bắt đầu cần chỉ mục, thiết kế schema tốt
100.000 – 1 triệuChậm nếu thiếu chỉ mục hoặc query không tối ưu
> 1 triệuPhải tối ưu kỹ, có thể cần chuyển sang RDBMS mạnh hơn nếu có truy vấn phức tạp nhiều bảng

🧠 Lưu ý: SQLite không dành cho high-concurrency (nhiều truy cập đồng thời). Nếu bạn có nhiều ghi + đọc đồng thời, nên chuyển sang PostgreSQL, MySQL...


✅ Một số cách tăng tốc SQLite:

  1. Tạo chỉ mục (CREATE INDEX) cho các trường thường truy vấn (WHERE, JOIN).
  2. Dùng EXPLAIN QUERY PLAN để kiểm tra hiệu suất câu truy vấn.
  3. Tắt journaling nếu không cần đảm bảo toàn vẹn: PRAGMA journal_mode = OFF;
  4. Dùng WAL mode (Write-Ahead Logging) để cải thiện hiệu năng ghi/đọc đồng thời: PRAGMA journal_mode = WAL;
  5. Nạp sẵn dữ liệu vào bộ nhớ RAM (cache), hoặc tách database theo nhóm.

📌 Khi nào nên chuyển từ SQLite sang hệ quản trị khác?

Dấu hiệuGợi ý
Nhiều concurrent users truy cậpDùng PostgreSQL/MySQL
Dữ liệu > vài triệu bản ghi, truy vấn JOIN phức tạpCần RDBMS mạnh hơn
Ứng dụng web/public API lớnSQLite không phù hợp