SQLite là gì? Hướng dẫn cơ sở dữ liệu nhúng cho người mới

SQLite là gì? Đây là cơ sở dữ liệu SQL nhẹ nhàng nhất thế giới, được sử dụng trong mọi smartphone, trình duyệt web và hàng tỷ ứng dụng trên toàn cầu. Từ Android, iPhone đến Firefox, Chrome, SQLite chạy nền tảng dữ liệu cho phần lớn công nghệ chúng ta dùng hàng ngày mà ít ai nhận ra.

SQLite là gì và tại sao nó phổ biến đến vậy?

SQLite là một thư viện trong-process hiện thực engine database SQL tự chứa, không cần server, không cần cấu hình. Toàn bộ database chứa trong một file duy nhất trên đĩa. D. Richard Hipp thiết kế SQLite vào năm 2000 khi đang làm cho General Dynamics theo hợp đồng với Hải quân Hoa Kỳ. Phiên bản 3.0 ra mắt tháng 6/2004 và trở thành tiêu chuẩn de facto cho database nhúng.

Màn hình terminal truy vấn SQLite với lệnh SELECT danh sách các hệ quản trị cơ sở dữ liệu

Theo sqlite.org, SQLite có thể được sử dụng nhiều hơn tất cả database engine khác cộng lại. Hơn 1 nghìn tỷ database SQLite đang hoạt động trên toàn thế giới, chủ yếu nhờ mỗi smartphone chứa hàng trăm file database SQLite. Thư viện nhỏ hơn 1 MiB nhưng xử lý database lên đến 281 terabyte.

Điểm nổi bật của SQLite so với database khác

SQLite hoạt động theo mô hình zero-configuration và serverless. Bạn không cần cài đặt server, không cần administrator, không cần cấu hình. Chỉ cần copy file database sang thiết bị khác là dùng được ngay. Đây là điểm khác biệt lớn nhất so với MySQL hay PostgreSQL.

Tính năng SQLite MySQL/PostgreSQL
Cài đặt Copy file, dùng ngay Cài server, cấu hình phức tạp
Kích thước Dưới 1 MiB Vài trăm MB đến GB
Triển khai File copy Dump/restore khi chuyển
Quản trị Không cần DBA Cần database administrator
Concurrency 1 writer tại một thời điểm Nhiều writer đồng thời
Network Chỉ local filesystem Truy cập qua network

SQLite hỗ trợ đầy đủ giao dịch ACID ngay cả sau mất điện, dùng Write-Ahead Logging (WAL) để reader không block writer. File format ổn định, backward-compatible qua nhiều phiên bản. Library of Congress khuyến nghị SQLite làm định dạng lưu trữ dài hạn.

Sản phẩm sử dụng SQLite trong thực tế

SQLite được tích hợp vào hầu hết mọi nền tảng công nghệ lớn:

  • Android và iOS: Mọi thiết bị di động đều dùng SQLite làm database chính cho ứng dụng hệ thống và bên thứ ba
  • Trình duyệt web: Firefox, Chrome và Safari đều sử dụng SQLite để lưu metadata, lịch sử và bookmark
  • Windows: SQLite là core component của Windows 10 và Windows 11
  • Dropbox: Dùng SQLite làm data store chính ở client-side
  • Adobe: Photoshop Lightroom và Acrobat Reader đều dùng SQLite làm application file format
  • Phi cơ Airbus A350 XWB: Phần mềm điều khiển bay sử dụng SQLite
  • Xe hơi: Hệ thống đa phương tiện của GM, Nissan, Suzuki dùng SQLite

Sơ đồ kiến trúc SQLite single-file database: ứng dụng kết nối trực tiếp thư viện SQLite rồi ghi dữ liệu vào một file duy nhất

Trang web sqlite.org chính nó cũng chạy trên SQLite, xử lý 400.000 đến 500.000 HTTP requests mỗi ngày trên một VM duy nhất.

Cách sử dụng SQLite cơ bản

SQLite tích hợp sẵn trong hầu hết ngôn ngữ lập trình phổ biến. Với Python, bạn chỉ cần import module chuẩn:

import sqlite3
conn = sqlite3.connect('mydb.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cursor.execute("INSERT INTO users (name, age) VALUES ('An', 25)")
conn.commit()
cursor.execute('SELECT * FROM users')
for row in cursor.fetchall():
    print(row)
conn.close()

Với dòng lệnh sqlite3 trên terminal:

sqlite3 mydb.db
CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price REAL);
INSERT INTO products VALUES (1, 'Laptop', 15000000);
SELECT * FROM products;

JavaScript cũng hỗ trợ SQLite qua thư viện sql.js chạy trên cả trình duyệt và Node.js. PHP hỗ trợ SQLite2 và SQLite3 từ sẵn, không cần cài thêm extension.

Giấy phép và cộng đồng phát triển

SQLite sử dụng giấy phép Public Domain, nghĩa là bất kỳ ai cũng có thể sao chép, sửa đổi và sử dụng cho bất kỳ mục đích nào mà không cần xin phép. Phiên bản mới nhất là SQLite 3.53.4, với hơn 156.000 dòng source code, 2 triệu tests mỗi release và test coverage 100% từ năm 2009.

SQLite có hơn 70.000 biến thể trên Hugging Face và một cộng đồng developer lớn mạnh, với hàng nghìn tutorial và tài liệu học tập miễn phí trên sqlite.org/docs.

Khi nào nên và không nên dùng SQLite?

SQLite phù hợp cho: ứng dụng di động, thiết bị IoT, website traffic thấp đến trung bình, desktop application, phân tích dữ liệu cá nhân và cache cho enterprise data. Website sqlite.org chứng minh SQLite xử lý tốt hàng trăm nghìn request mỗi ngày.

SQLite không phù hợp khi: cần nhiều writer đồng thời (hàng nghìn user ghi cùng lúc), cần truy cập database từ nhiều máy tính qua network, hoặc dataset quá lớn phân tán trên nhiều server. Trong trường hợp đó, MySQL, PostgreSQL hoặc database distributed sẽ phù hợp hơn.

Điểm mấu chốt: SQLite không cạnh tranh với MySQL hay PostgreSQL. SQLite cạnh tranh với fopen() — thay vì đọc file thô, bạn có power của SQL trong một file duy nhất.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

FastAPI là gì? Framework Python hiện đại cho lập trình viên

FastAPI là gì? Framework Python hiện đại cho API hiệu năng cao FastAPI là framework Python hiện đại dành cho việc xây dựng API, nổi bật nhờ hiệu năng cao…

Xem thêm

Prisma là gì? Hướng dẫn ORM cho Node.js và TypeScript

Prisma là gì? Prisma là một ORM (Object-Relational Mapping) mã nguồn mở thế hệ mới dành cho Node.js và TypeScript, giúp lập trình viên làm việc với cơ sở dữ…

Xem thêm

Rust là gì? Ngôn ngữ lập trình an toàn bộ nhớ và hiệu năng cao

Rust là ngôn ngữ lập trình hệ thống đang được cả thế giới công nghệ chú ý nhờ khả năng kết hợp hiệu năng ngang C/C++ với sự an toàn…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất