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

Vì sao PostgreSQL là lựa chọn mặc định cho phần mềm doanh nghiệp

PostgreSQL miễn phí bản quyền, không khoá doanh nghiệp vào một nhà cung cấp, giữ dữ liệu đúng bằng ràng buộc ngay trong cơ sở dữ liệu và mở rộng được cho dữ liệu JSON, chuỗi thời gian, tìm kiếm. Bài so sánh PostgreSQL với MySQL, SQL Server, MongoDB, SQLite từ góc người mua phần mềm, kèm mã thật và bài học vận hành của ALODEV AIO.

11 phút đọc

PostgreSQL là lựa chọn mặc định hợp lý cho phần mềm doanh nghiệp vì bốn lý do: không mất phí bản quyền và không phụ thuộc một hãng, giữ dữ liệu đúng bằng ràng buộc ngay trong cơ sở dữ liệu, xử lý được nhiều loại dữ liệu (bảng, JSON, chuỗi thời gian, tìm kiếm văn bản) trong một hệ thống, và có mặt ở mọi nhà cung cấp cloud lớn nên dữ liệu chuyển đi được khi cần. "Mặc định" nghĩa là chọn PostgreSQL trừ khi có lý do cụ thể để chọn thứ khác; bài có một mục riêng cho các lý do đó.

ALODEV dùng PostgreSQL cho ALODEV AIO, hệ thống chấm công, lương, hợp đồng và giao việc mà công ty dùng hằng ngày. Các đoạn mã và bài học trong bài lấy từ kho mã của hệ thống đó, đọc ngày 25/09/2026.

PostgreSQL đang đứng ở đâu

Hai nguồn đo độ phổ biến thường được dẫn cho kết quả khác nhau, và nên đọc cả hai. Khảo sát lập trình viên của Stack Overflow năm 2025 hỏi người trả lời đã dùng cơ sở dữ liệu nào trong năm: PostgreSQL đứng đầu với 55,6% toàn bộ người trả lời và 58,2% lập trình viên chuyên nghiệp, cách MySQL ở vị trí thứ hai hơn 15 điểm phần trăm.

Biểu đồ Stack Overflow Developer Survey 2025: PostgreSQL 58,2% lập trình viên chuyên nghiệp, MySQL 39,6%
Tỷ lệ sử dụng cơ sở dữ liệu trong Stack Overflow Developer Survey 2025, vẽ lại từ số công bố tại survey.stackoverflow.co/2025/technology (tra 25/09/2026). Nhóm lập trình viên chuyên nghiệp nghiêng về PostgreSQL rõ hơn nhóm chung.

Bảng xếp hạng DB-Engines đo theo cách khác: số lần được nhắc trên web, tìm kiếm, tin tuyển dụng, hồ sơ chuyên gia. Ở đó PostgreSQL đứng thứ tư, sau Oracle, MySQL và SQL Server, những hệ đã có mặt lâu năm trong doanh nghiệp lớn. Chiều biến động đáng chú ý hơn thứ hạng: trong 12 tháng tính tới tháng 9/2026, điểm của PostgreSQL tăng 26,08 trong khi Oracle giảm 48,36, MySQL giảm 46,95, SQL Server giảm 18,63.

Bảng xếp hạng DB-Engines tháng 9/2026, PostgreSQL hạng 4 với 683,26 điểm, tăng 26,08 so với tháng 9/2025
DB-Engines Ranking tháng 9/2026, chụp ngày 25/09/2026 tại db-engines.com/en/ranking (dòng PostgreSQL được tô vàng khi chụp). 438 hệ quản trị được xếp hạng. PostgreSQL hạng 4 với 683,26 điểm, là hệ duy nhất trong bốn hạng đầu có điểm tăng so với cùng kỳ năm trước.

Với người mua phần mềm, con số phổ biến có một ý nghĩa thực dụng: càng nhiều người dùng thì càng dễ tìm người tiếp quản hệ thống, càng nhiều tài liệu, và càng ít khả năng công nghệ bị bỏ rơi giữa đường.

Không phí bản quyền, không bị khoá vào một hãng

PostgreSQL phát hành theo PostgreSQL License, một giấy phép mã nguồn mở kiểu BSD cho phép dùng, sửa, bán kèm mà không trả phí và không bị ràng buộc công bố mã của mình. Dự án không thuộc sở hữu của công ty nào; nó do một cộng đồng toàn cầu phát triển. Điều này khác với MySQL (thuộc Oracle, có phiên bản thương mại song song) và càng khác với SQL Server hay Oracle Database, nơi chi phí bản quyền tăng theo số lõi CPU hoặc số người dùng.

Hệ quả thứ hai quan trọng không kém: PostgreSQL có ở mọi nơi. AWS (RDS, Aurora), Google Cloud SQL, Azure Database, cùng các dịch vụ như Supabase, Neon đều bán PostgreSQL được quản lý sẵn. Một doanh nghiệp bắt đầu trên máy chủ tự dựng có thể chuyển lên cloud, hoặc ngược lại, bằng công cụ sao lưu chuẩn pg_dump mà không phải viết lại phần mềm. Khoá chặt nhà cung cấp là rủi ro doanh nghiệp thường chỉ nhìn thấy khi muốn rời đi; chọn PostgreSQL giảm rủi ro đó ngay từ đầu.

Vòng đời cũng rõ ràng. Theo chính sách phiên bản tại postgresql.org (tra 25/09/2026), mỗi bản lớn được hỗ trợ 5 năm, bản vá ra ít nhất ba tháng một lần. PostgreSQL 14 hết hỗ trợ ngày 12/11/2026; hệ thống nào còn chạy bản này nên lên lịch nâng cấp ngay trong quý.

Dữ liệu đúng được giữ ngay trong cơ sở dữ liệu

Với phần mềm lương, hợp đồng, kho, tài chính, sai dữ liệu là sai tiền. PostgreSQL cho phép khai báo luật nghiệp vụ thành ràng buộc: cơ sở dữ liệu từ chối ghi bản ghi vi phạm, bất kể dữ liệu đến từ giao diện web, từ một script nhập liệu hay từ một lập trình viên gõ lệnh trực tiếp.

Mã ALODEV AIO: ràng buộc EXCLUDE USING gist chặn hai hợp đồng lao động đã ký chồng ngày nhau
Ràng buộc trong bảng hợp đồng lao động của ALODEV AIO: với cùng một doanh nghiệp và một nhân viên, hai hợp đồng đã ký không được có khoảng ngày chồng nhau. Chú thích trong mã giải thích vì sao luật này đặt ở PostgreSQL: một hàng rào trong mã Go chỉ chặn được những thao tác đi qua mã Go.

Cùng bảng đó còn các ràng buộc CHECK: hợp đồng thử việc phải có ngày kết thúc thử việc, ngày kết thúc thử việc không quá 180 ngày sau ngày bắt đầu (trần của Điều 25 Bộ luật Lao động 2019), hợp đồng ở trạng thái đã ký phải kèm tệp bản ký. Người nhập sai năm, gõ 2027 thay vì 2026, bị chặn ngay lúc bấm Lưu thay vì bị phát hiện vào ngày chốt lương. MySQL từ bản 8.0.16 có CHECK nhưng không có ràng buộc loại trừ theo khoảng như EXCLUDE; MongoDB để phần lớn việc kiểm tra cho mã ứng dụng.

Lớp bảo vệ thứ hai là Row-Level Security: PostgreSQL tự lọc dòng dữ liệu theo người hỏi, nên một phần mềm phục vụ nhiều doanh nghiệp (tenant) trên cùng cơ sở dữ liệu có một bức tường ở tầng dữ liệu, không chỉ dựa vào việc lập trình viên nhớ thêm điều kiện lọc vào mọi câu truy vấn. Cách ALODEV AIO dùng RLS được kể chi tiết trong bài trên blog của CEO ALODEV (liên kết cuối bài).

Một hệ thống cho nhiều loại dữ liệu

Phần mềm doanh nghiệp hiếm khi chỉ có bảng. Có cấu hình linh hoạt theo từng khách hàng (hợp với JSON), có nhật ký sự kiện theo thời gian, có ô tìm kiếm văn bản tiếng Việt, gần đây có tìm kiếm theo ngữ nghĩa cho trợ lý AI. PostgreSQL xử lý được phần lớn các nhu cầu đó bằng kiểu dữ liệu có sẵn (JSONB, mảng, khoảng thời gian, tìm kiếm toàn văn) và phần mở rộng (TimescaleDB cho chuỗi thời gian, pgvector cho vector nhúng).

ALODEV có một bằng chứng tự trả giá cho điểm này. Hạ tầng của AIO từng dựng sẵn ClickHouse, một cơ sở dữ liệu phân tích chuyên cho sự kiện số lượng lớn. Kiểm ngày 26/08/2026: không một dòng mã Go nào kết nối tới ClickHouse, cả hai bảng của nó rỗng, trong khi 96.954 sự kiện thật nằm trong PostgreSQL với phần mở rộng TimescaleDB. Thêm một cơ sở dữ liệu là thêm một thứ phải sao lưu, giám sát, nâng cấp; ở quy mô doanh nghiệp vừa, PostgreSQL thường gánh được cả phần đó.

So sánh PostgreSQL với các lựa chọn khác

Đặc điểm của năm cơ sở dữ liệu phổ biến, nhìn từ yêu cầu của phần mềm doanh nghiệp. Tỷ lệ sử dụng: Stack Overflow Developer Survey 2025, lập trình viên chuyên nghiệp.
Tiêu chíPostgreSQLMySQLSQL ServerMongoDBSQLite
Giấy phépMã nguồn mở, không phíGPL, có bản thương mại (Oracle)Thương mại, có bản Express giới hạnSSPL (bản cộng đồng)Public domain
Ràng buộc dữ liệuĐầy đủ: CHECK, khoá ngoại, EXCLUDECHECK từ 8.0.16, khoá ngoại (InnoDB)Đầy đủChủ yếu ở mã ứng dụngCó, đơn giản
Row-Level SecurityCó sẵnKhông có sẵnCó sẵnKhông có sẵn ở mức tương đươngKhông
JSONJSONB, đánh chỉ mục đượcKiểu JSONHàm JSON, kiểu JSON riêng từ bản 2025Dữ liệu gốc là tài liệu JSONHàm JSON
Bản được quản lý trên cloudMọi nhà cung cấp lớnMọi nhà cung cấp lớnAzure mạnh nhất, AWS cóMongoDB Atlas, một số cloudKhông áp dụng (chạy trong ứng dụng)
Tỷ lệ dev chuyên nghiệp dùng58,2%39,6%30,9%24,3%36,9%

Những gì PostgreSQL không tự làm thay bạn

Chọn đúng cơ sở dữ liệu không thay được vận hành đúng. ALODEV AIO chạy production và staging trên cùng một máy chủ PostgreSQL, tách bằng hai cơ sở dữ liệu. Lần kiểm toán ngày 30/08/2026 phát hiện mỗi tiến trình backend được phép mở tối đa 90 kết nối, trong khi PostgreSQL chỉ nhận 100: hai tiến trình cùng tăng tải là vượt trần.

Mã postgres.go của ALODEV AIO: MaxConns hạ xuống 60, chú thích giải thích 2 tiến trình dùng chung một PostgreSQL
Chú thích thật trong mã ALODEV AIO ghi lại lỗi và cách sửa hai phía: nâng giới hạn kết nối của PostgreSQL lên 200 và hạ mỗi tiến trình xuống 60, còn dư 80 kết nối cho công cụ quản trị. Con số trong chú thích cũ và con số trong mã đã lệch nhau mà không ai để ý.

Loại việc tương tự: đĩa đầy làm PostgreSQL dừng ghi, sao lưu không được thử phục hồi, bản lớn hết hạn hỗ trợ mà không ai nâng. Đây là phần doanh nghiệp phải trả dù chọn cơ sở dữ liệu nào, và là lý do nhiều doanh nghiệp chọn bản PostgreSQL được quản lý trên cloud. Bài tiếp theo của series bàn chuyện tự dựng máy chủ hay thuê cloud.

Khi nào KHÔNG nên chọn PostgreSQL

  • Ứng dụng chạy trên một máy, một người dùng hoặc cần chạy không có mạng (app bán hàng tại quầy, công cụ nội bộ nhỏ): SQLite gọn hơn, không cần máy chủ.
  • Hệ thống xây trên nền tảng đã gắn với MySQL (WordPress, WooCommerce, Magento): giữ MySQL, đổi cơ sở dữ liệu là tự tạo việc.
  • Doanh nghiệp đã đầu tư hệ sinh thái Microsoft (Dynamics, Power BI kết nối sẵn, đội quản trị SQL Server): tiếp tục SQL Server có thể rẻ hơn tính cả người vận hành.
  • Phân tích trên hàng tỷ dòng sự kiện với truy vấn tổng hợp liên tục: kho dữ liệu cột như ClickHouse hay BigQuery nhanh hơn nhiều, đặt cạnh PostgreSQL chứ không thay nó.
  • Bộ nhớ đệm, phiên đăng nhập, hàng đợi ngắn hạn: Redis làm việc này tốt hơn, cũng đặt cạnh PostgreSQL.

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

PostgreSQL có miễn phí cho doanh nghiệp dùng thương mại không?

Có. Giấy phép PostgreSQL cho phép dùng thương mại, sửa đổi và phân phối mà không trả phí bản quyền. Chi phí thật nằm ở máy chủ, sao lưu và người vận hành, hoặc ở phí dịch vụ nếu thuê bản được quản lý trên cloud.

Nên chọn PostgreSQL hay MySQL cho phần mềm quản lý?

Dự án mới nên chọn PostgreSQL vì ràng buộc dữ liệu đầy đủ hơn, có Row-Level Security và JSONB. Dự án đang chạy tốt trên MySQL thì không cần đổi; chênh lệch không đáng công chuyển đổi và kiểm thử lại.

PostgreSQL chịu được bao nhiêu dữ liệu?

Với phần mềm doanh nghiệp vừa, giới hạn thường nằm ở dung lượng đĩa và cách đánh chỉ mục, chưa chạm tới giới hạn của PostgreSQL. Bảng hàng trăm triệu dòng vẫn chạy tốt nếu truy vấn có chỉ mục phù hợp và dữ liệu cũ được phân vùng.

Chuyển từ SQL Server hay MySQL sang PostgreSQL có khó không?

Phần dữ liệu chuyển được bằng công cụ có sẵn; phần tốn công là stored procedure, hàm riêng của từng hệ và các câu truy vấn viết theo cú pháp riêng. Cần kiểm kê những chỗ đó trước khi báo giá chuyển đổi.

Thuê phần mềm dùng PostgreSQL thì cần hỏi đơn vị làm những gì?

Hỏi bản PostgreSQL đang dùng và ngày hết hỗ trợ, lịch sao lưu và lần thử phục hồi gần nhất, luật nghiệp vụ nào được đặt thành ràng buộc trong cơ sở dữ liệu, và dữ liệu có xuất được bằng pg_dump khi đổi nhà cung cấp không.

Bài viết liên quan

Ký sự lập trình
Ký sự lập trình11 phút đọc

Môi trường staging là gì, vì sao phần mềm doanh nghiệp phải có

Staging là bản sao chạy thử của phần mềm, giống hệ thống thật nhưng có dữ liệu riêng, để mọi thay đổi được đo trước khi chạm vào người dùng. Google SRE ghi khoảng 70% sự cố đến từ thay đổi trên hệ thống đang chạy. Bài giải thích staging khác bản xem thử ở đâu, bốn sự cố ALODEV gặp khi ranh giới staging và production bị lẫn, và những câu cần hỏi đơn vị làm phần mềm.

Ký sự lập trình11 phút đọc

Viết phần mềm theo yêu cầu: vì sao vẫn cần khi SaaS tràn ngập

Doanh nghiệp lớn trung bình dùng 305 ứng dụng SaaS và bỏ phí 36% giấy phép. Viết phần mềm theo yêu cầu vẫn cần cho phần quy trình làm nên khác biệt của công ty, phần mà gói có sẵn không diễn đạt được. Bài giải thích chỗ nào nên mua, chỗ nào nên may đo, cái giá thật của phần mềm riêng, và cách chia đôi hợp lý, kèm số đo từ phần mềm nội bộ của ALODEV.

Ký sự lập trình10 phút đọc

PHP và Laravel năm 2026: vì sao vẫn sống và khi nào doanh nghiệp nên chọn

PHP vẫn chạy khoảng 70% website có ngôn ngữ máy chủ nhận diện được, Laravel ra bản lớn mỗi năm và cam kết vá bảo mật hai năm cho từng bản. Bài giải thích vì sao PHP chưa chết, Laravel hợp với loại dự án nào, khi nào nên chọn ngôn ngữ khác, và những câu cần hỏi đơn vị làm phần mềm trước khi ký.

Nhận bài mới

Để lại email để nhận bài mới của series Ký sự lập trình, hoặc theo dõi bằng RSS.

RSS Ký sự lập trình

Email chỉ dùng để gửi bài mới, xem Chính sách bảo mật.

Trao đổi về dự án

Cần tư vấn?