
Trả lời nhanh: Cả hai đều là database quan hệ trưởng thành, chạy tốt mọi dự án phổ thông, nên tiêu chí chọn không phải "cái nào mạnh hơn" mà là hệ sinh thái quanh dự án của bạn: WordPress/WooCommerce, PHP hosting truyền thống → MySQL/MariaDB tự nhiên hơn. Dự án mới hệ Node/Python, cần JSONB, full-text, extension (pgvector cho AI) → Postgres đang là mặc định của thế hệ công cụ mới. Hiệu năng trên cùng phần cứng: khác biệt giữa hai database nhỏ hơn nhiều so với khác biệt giữa ổ thường và NVMe.
Đây là trận thánh chiến lâu đời nhất giới backend, và cũng là trận vô nghĩa nhất nếu cãi nhau trong chân không. Bài này kéo cuộc so sánh về mặt đất: dự án của bạn hình gì, đội của bạn quen gì, công cụ quanh bạn nghiêng về đâu, kèm những khác biệt kỹ thuật thật sự còn ý nghĩa năm 2026.
- Chọn theo hệ sinh thái: WP/PHP → MySQL; stack mới Node/Python/AI → Postgres
- Khác biệt còn thật 2026: extension Postgres (pgvector, PostGIS) vs độ phủ hosting của MySQL
- Hiệu năng: hòa ở phổ thông; cả hai cùng đói IOPS và fsync, phần cứng quyết định nhiều hơn
- Đã chọn rồi thì đầu tư vào index + tuning thay vì mơ chuyển database đổi đời
Phần giống nhau - lớn hơn bạn tưởng
SQL chuẩn, transaction ACID, replication, backup trưởng thành, driver mọi ngôn ngữ, cộng đồng khổng lồ, cả hai đều có đủ. Web bán hàng vài trăm nghìn đơn/năm, app quản lý nội bộ, blog lớn: chạy trên cái nào cũng ổn nếu vận hành tử tế. Người mới hay tưởng chọn database là quyết định sống còn; thực tế index đúng và máy tử tế quyết định trải nghiệm nhiều gấp bội cái tên database.
Khác biệt còn ý nghĩa năm 2026
- Extension - vũ khí của Postgres: pgvector (tìm kiếm vector cho AI), PostGIS (bản đồ), TimescaleDB (chuỗi thời gian)... cắm thêm là database mọc năng lực mới. Đây là lý do lớn nhất stack AI/startup hội tụ về Postgres.
- JSONB: Postgres lưu và đánh index JSON như dân bản xứ, lai giữa quan hệ và linh hoạt. MySQL có JSON nhưng thao tác sâu kém thoải mái hơn.
- Độ phủ - vũ khí của MySQL: mọi shared hosting, mọi panel, mọi plugin WordPress sinh ra cho MySQL/MariaDB; tài liệu tiếng Việt dày đặc; thợ quen tay đông.
- Chi tiết vận hành: Postgres cần hiểu VACUUM (bài tối ưu đã nói); MySQL/InnoDB có nết riêng về buffer pool. Cùng khối lượng học, khác chương sách.
Hiệu năng: câu trả lời gây thất vọng cho người thích drama
Benchmark hai bên thắng thua qua lại theo từng loại tải và từng phiên bản, chênh nhau thường trong khoảng vài chục phần trăm ở tình huống chuyên biệt. Trong khi đó, cùng một database chuyển từ ổ SATA sang NVMe enterprise, hoặc từ máy oversell sang máy sạch, thay đổi vài lần. Cả hai cùng một tử huyệt: commit phải fsync xuống ổ, query lạnh phải đọc ngẫu nhiên, nghĩa là đầu tư đúng chỗ là đầu tư vào nền phần cứng và index, không phải vào việc đổi phe.
Bảng chọn nhanh theo dự án
- WordPress/WooCommerce: MySQL/MariaDB, không phải bàn, cả hệ sinh thái xây quanh nó.
- SaaS/app mới (Node, Python, Prisma/Drizzle): Postgres, ORM và tooling thế hệ mới ưu ái nó ra mặt.
- Có tính năng AI (embedding, tìm kiếm ngữ nghĩa): Postgres + pgvector, đỡ nuôi thêm một vector database riêng.
- Đội đã 5 năm MySQL nhuần nhuyễn: ở lại MySQL, kinh nghiệm đội đắt hơn tính năng chưa cần.
- Chạy cả hai: hoàn toàn bình thường, WordPress chạy MariaDB, app mới chạy Postgres, chung một VPS đủ RAM, mỗi con một port localhost.
Bảng chọn theo loại dự án
| Dự án của bạn | Nên chọn | Lý do quyết định |
|---|---|---|
| WordPress, Magento, phần mềm mã nguồn mở sẵn có | MySQL hoặc MariaDB | Phần mềm viết sẵn cho nó; đi ngược là tự chuốc việc |
| Ứng dụng web mới, tự viết | PostgreSQL | Kiểu dữ liệu phong phú hơn, ràng buộc chặt hơn, đỡ lỗi về sau |
| Cần lưu dữ liệu dạng JSON và truy vấn trong đó | PostgreSQL | Hỗ trợ truy vấn và đánh chỉ mục trong JSON sâu hơn |
| Dữ liệu địa lý, bản đồ, tìm theo khoảng cách | PostgreSQL | Phần mở rộng địa lý là tiêu chuẩn thực tế của ngành |
| Đội đã thạo một bên và hệ thống đang chạy ổn | Giữ nguyên | Chi phí chuyển đổi luôn lớn hơn phần lợi trên giấy |
| Đọc nhiều, ghi ít, truy vấn đơn giản | Cả hai đều tốt | Chọn theo thứ đội bạn vận hành được lúc 2 giờ sáng |
Điều quyết định tốc độ hơn cả việc chọn bên nào
# Chi so quyet dinh: o dia co du nhanh khong
fio --name=t --ioengine=libaio --direct=1 --bs=8k --rw=randread \
--iodepth=32 --numjobs=4 --size=2G --runtime=120 --time_based --group_reporting
# Bo nho co du chua vung dem khong
free -h
# Co dang cho o dia khong
vmstat 2 30 # cot wa cao la nghen o diaThực tế đo được ở phần lớn hệ thống vừa và nhỏ: khác biệt giữa hai cơ sở dữ liệu này nhỏ hơn nhiều so với khác biệt giữa ổ đĩa chậm và ổ NVMe, và nhỏ hơn khác biệt giữa có chỉ mục đúng và không có chỉ mục. Chọn bên nào là quyết định về đội ngũ và hệ sinh thái, không phải về tốc độ.
Nếu vẫn muốn chuyển, ba việc phải làm trước
- Liệt kê các truy vấn dùng cú pháp riêng của một bên. Đây là phần tốn công nhất và luôn nhiều hơn dự tính.
- Kiểm cách xử lý kiểu ngày giờ và múi giờ, vì hai bên xử lý khác nhau và lỗi ở đây rất khó phát hiện.
- Chạy song song một thời gian trước khi cắt hẳn, và so kết quả của các báo cáo quan trọng giữa hai bên.
Câu hỏi thường gặp
MariaDB với MySQL có phải là một không?
MariaDB là nhánh mở của MySQL, tương thích phần lớn, được nhiều hosting Việt dùng mặc định. Ở tầm bài này, mọi nhận định về MySQL áp cho MariaDB gần như nguyên vẹn.
Đang MySQL muốn sang Postgres có đáng không?
Chỉ đáng khi có lý do cụ thể (cần pgvector, JSONB, extension). Migrate database đang chạy là dự án thật sự, tốn công kiểm thử hơn nhiều người tưởng. Đừng migrate vì đọc bài khen Postgres, kể cả bài này.
Dự án nhỏ có nên dùng SQLite thay cả hai?
Rất nên cân nhắc, SQLite production là lựa chọn nghiêm túc cho app một máy. Bài riêng về SQLite ngay trong cụm này trả lời sâu câu đó.
Cấu hình VPS cho database khác nhau giữa hai loại không?
Nguyên tắc chung giống nhau: RAM đủ cache working set, ổ NVMe cho fsync và đọc ngẫu nhiên, CPU xung cao cho query đơn luồng. Khác nhau ở tham số tinh chỉnh, mỗi bên có bài tuning riêng.
Bài viết liên quan
- Cài PostgreSQL trên VPS Ubuntu chuẩn production
- Database MySQL/PostgreSQL chậm: 6 nguyên nhân
- VPS ổ Enterprise U.2 NVMe RAID 10 tại TND
- Codex CLI trên VPS: cấu hình để không treo giữa tác vụ dài
- Supabase Auth tự host: đăng nhập cho app của bạn
- Tailscale với Proxmox: quản trị homelab và backup từ xa
- PingPong Payments: Giải Pháp Ngân Hàng - Thanh Toán Quốc Tế Cross-border e-commerce
- Cài PostgreSQL trên VPS Ubuntu: chuẩn production 15 phút
- Deploy Next.js lên VPS từ A-Z, không cần Vercel



