Cơ bảnKiến thức cơ bản

PostgreSQL là gì? So sánh chi tiết với MySQL

8 phút đọc0 lượt xem
#postgresql#database#sql#mysql#backend

PostgreSQL là gì? So sánh chi tiết với MySQL

Khi học backend, bạn sẽ sớm đứng trước câu hỏi: chọn MySQL hay PostgreSQL?

Cả hai đều dùng SQL, đều miễn phí, đều phổ biến. Nhưng chúng có những điểm khác nhau quan trọng ảnh hưởng đến quyết định của bạn. Bài này phân tích từng điểm để bạn chọn đúng ngay từ đầu.

PostgreSQL là gì?

PostgreSQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, ra mắt năm 1996. Nó được phát triển và duy trì bởi cộng đồng tình nguyện viên toàn cầu.

Những cái tên lớn đang dùng PostgreSQL: Apple, Instagram, Reddit, Spotify, Netflix.

Điểm nổi bật:

  • Tuân thủ ACID hoàn toàn
  • Hỗ trợ JSONB (lưu trữ và truy vấn JSON như NoSQL)
  • Extension phong phú (PostGIS, v.v.)
  • Hoàn toàn miễn phí

PostgreSQL vs MySQL: So sánh chi tiết

Tiêu chíPostgreSQLMySQL
LicensePostgreSQL License (hoàn toàn miễn phí)GPL + bản thương mại (Oracle)
Tuân thủ ACIDHoàn toànChỉ khi dùng InnoDB
Hỗ trợ JSONXuất sắc (JSONB)Hạn chế
ExtensionPhong phúÍt hơn
Query phức tạpMạnh hơnYếu hơn
Read-heavy workloadTốtNhanh hơn một chút
Độ khó họcCao hơn một chútDễ hơn một chút

Tính năng nổi bật của PostgreSQL

JSONB — Lưu dữ liệu JSON như NoSQL

CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    metadata JSONB
);

INSERT INTO products (name, metadata) VALUES (
    'Laptop Dell XPS',
    '{"brand": "Dell", "ram": 16, "storage": "512GB", "price": 25000000}'
);

SELECT name, metadata->>'brand' AS brand
FROM products
WHERE (metadata->>'ram')::int >= 16;

Transaction và ACID

BEGIN;

UPDATE accounts SET balance = balance - 500000
WHERE id = 1;

UPDATE accounts SET balance = balance + 500000
WHERE id = 2;

COMMIT;

Cài đặt và sử dụng PostgreSQL

Ubuntu/Debian:

sudo apt update
sudo apt install postgresql postgresql-contrib

macOS (Homebrew):

brew install postgresql
brew services start postgresql

Các lệnh cơ bản trong psql:

CREATE DATABASE myapp;
\c myapp

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO users (name, email)
VALUES ('Nguyễn Văn An', 'an@example.com');

SELECT * FROM users WHERE name LIKE 'Nguyễn%';

\dt

Nếu thích giao diện đồ họa, dùng pgAdmin — công cụ quản lý PostgreSQL miễn phí, trực quan.

Nên chọn PostgreSQL hay MySQL?

Chọn PostgreSQL khi:

  • Bắt đầu dự án mới
  • Cần lưu trữ và truy vấn JSON
  • Transaction phức tạp, yêu cầu ACID chặt chẽ
  • Dùng Render (hỗ trợ PostgreSQL natively)
  • Dùng Django hoặc FastAPI

Chọn MySQL khi:

  • Kế thừa dự án cũ đang dùng MySQL
  • Team đã quen và có kinh nghiệm với MySQL

Kết luận

Cả hai đều là database tốt. Nhưng nếu bắt đầu một dự án mới trong 2026, PostgreSQL là lựa chọn hợp lý hơn — tính năng phong phú hơn, hoàn toàn miễn phí, và được cộng đồng developer hiện đại ưa chuộng.

Ôn lại SQL cơ bản trước? Xem bài SQL là gì? Hướng dẫn SQL cơ bản từ đầu.

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

The Complete SQL Bootcamp: Go from Zero to Hero

SQL từ cơ bản đến nâng cao với PostgreSQL.

4.7
Xem khóa học →

MongoDB - The Complete Developer's Guide

Học MongoDB toàn diện: CRUD, aggregation, indexing.

4.6
Xem khóa học →

*Đây là liên kết liên kết (affiliate link). Chúng tôi có thể nhận hoa hồng nếu bạn mua khóa học qua liên kết này.