Bỏ qua menu, vào nội dung chính

PostgreSQL 16+

PostgreSQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, hỗ trợ giao dịch ACID, dữ liệu JSON, tìm kiếm toàn văn và nhiều phần mở rộng. ALODEV dùng PostgreSQL làm cơ sở dữ liệu mặc định, kể cả cho hệ thống quản trị nội bộ ALODEV AIO.

Dùng cho

  • Dữ liệu nghiệp vụ

    Đơn hàng, tồn kho, khách hàng, hợp đồng, nhân sự. Giao dịch ACID giữ dữ liệu nhất quán khi nhiều người cùng thao tác.

  • Tìm kiếm tiếng Việt

    Tìm kiếm toàn văn có sẵn, kết hợp phần mở rộng unaccent để tìm không dấu. Đủ dùng cho nhiều hệ thống mà chưa cần Elasticsearch.

  • Tìm kiếm ngữ nghĩa cho AI

    Phần mở rộng pgvector lưu vector nhúng để tra cứu tài liệu nội bộ cho chatbot, ngay trong cơ sở dữ liệu đang dùng.

  • Dữ liệu theo thời gian

    Nhật ký, số liệu cảm biến, lịch sử vị trí. Có thể dùng phân vùng bảng hoặc phần mở rộng TimescaleDB.

  • Dữ liệu cấu trúc linh hoạt

    Cột JSONB lưu thông tin có cấu trúc thay đổi, như thuộc tính sản phẩm hay cấu hình, bên cạnh các bảng quan hệ.

Năng lực kỹ thuật

PostgreSQL ổn định, không tốn phí bản quyền và đáp ứng được phần lớn nhu cầu lưu trữ nghiệp vụ trong một hệ thống. Một cơ sở dữ liệu cho nhiều loại dữ liệu giúp giảm số thành phần phải vận hành và sao lưu.

  • Thiết kế lược đồ

    Thiết kế bảng, quan hệ, ràng buộc và chỉ mục theo nghiệp vụ, tính đến lượng dữ liệu tăng dần theo năm.

  • Tối ưu truy vấn

    Phân tích truy vấn chậm bằng EXPLAIN ANALYZE, bổ sung chỉ mục phù hợp, viết lại truy vấn hoặc dùng materialized view.

  • Phân vùng bảng lớn

    Chia bảng theo thời gian hoặc theo đơn vị để truy vấn và dọn dữ liệu cũ nhanh hơn.

  • Bản sao dự phòng

    Sao chép liên tục sang máy chủ dự phòng, có thể dùng bản sao cho các truy vấn chỉ đọc như báo cáo.

  • Sao lưu và khôi phục

    Sao lưu định kỳ, lưu nhật ký WAL để khôi phục tới một thời điểm, và chạy thử khôi phục để chắc bản sao lưu dùng được.

  • Chuyển đổi từ MySQL, MongoDB

    Chuyển dữ liệu bằng pgloader hoặc công cụ riêng, đối chiếu số lượng và tính toàn vẹn sau khi chuyển.

Nên dùng khi

  • Dữ liệu nghiệp vụ có quan hệ rõ ràng: đơn hàng, khách hàng, kho, nhân sự
  • Dữ liệu tài chính cần giao dịch đảm bảo tính nhất quán
  • Cần thêm tìm kiếm, dữ liệu JSON, dữ liệu địa lý hoặc vector trong cùng một hệ thống

Không phù hợp khi

  • Bộ nhớ đệm và phiên đăng nhập: Redis phù hợp hơn
  • Phân tích trên khối dữ liệu rất lớn: cân nhắc ClickHouse hoặc BigQuery
  • Dữ liệu hoàn toàn không có cấu trúc cố định và đội đã quen MongoDB

Công nghệ đi kèm

pgvectorTimescaleDBPostGISpg_partmanPrisma / Drizzle ORMPatroniPgBouncer

Câu hỏi thường gặp

Tất cả câu hỏi
Nên chọn PostgreSQL hay MySQL?

Cả hai đều ổn định và phổ biến. PostgreSQL mạnh hơn ở kiểu dữ liệu JSON, tìm kiếm toàn văn và hệ phần mở rộng. MySQL phổ biến trong hệ sinh thái PHP như WordPress, Laravel. Với dự án mới, ALODEV chọn PostgreSQL, còn hệ thống đang chạy MySQL ổn định thì không nhất thiết phải chuyển.

Khi nào nên dùng MongoDB thay PostgreSQL?

Khi dữ liệu thật sự không có cấu trúc cố định và đội kỹ thuật đã quen MongoDB. Nhiều trường hợp dữ liệu linh hoạt có thể lưu bằng cột JSONB trong PostgreSQL. Dùng một cơ sở dữ liệu giúp đơn giản việc vận hành và sao lưu.

PostgreSQL chịu được lượng dữ liệu lớn không?

Được, nếu thiết kế phù hợp. Điểm nghẽn thường gặp là truy vấn thiếu chỉ mục, bảng lớn không được phân vùng và cấu hình bộ nhớ chưa điều chỉnh. Cần theo dõi truy vấn chậm định kỳ khi dữ liệu tăng.

Sao lưu thế nào để không mất dữ liệu?

Kết hợp sao lưu định kỳ với lưu nhật ký WAL liên tục để khôi phục tới thời điểm gần nhất. Bản sao lưu nên nằm ở ít nhất một nơi khác máy chủ chính. Quan trọng nhất là chạy thử khôi phục định kỳ, vì bản sao lưu chưa từng khôi phục thì chưa chắc dùng được.

Có cần cơ sở dữ liệu vector riêng cho chatbot AI không?

Thường là chưa cần. pgvector cho phép lưu và tìm vector ngay trong PostgreSQL, đủ cho kho tài liệu nội bộ của phần lớn doanh nghiệp. Khi số lượng vector rất lớn hoặc yêu cầu tốc độ đặc biệt, có thể cân nhắc Qdrant hoặc Pinecone.

Ước tính chi phí dự án

Cần tư vấn?