thắc mắc - Hỏi về tương lai của PostgreSQL ở VN. | theNEXTvoz
Ruaconlonton123
Chào các bác,
Em đã dùng MySQL khi học ở trên trường và đang dùng PostgreSQL khi đi làm, cá nhân em thấy PostgreSQL nhỉnh hơn (cá nhân em ạ, bác nào bên MySQL đừng blame em) nhưng mà khi tìm kiếm thử trên ITViec với từ khóa PostgreSQL ra được 21 jobs và MySQl ra 122 jobs, chênh lệch khá lớn. Em biết một phần lý do là vì các dự án từ ngày xưa được viết bằng MySQL cần maintain và do team mạnh về MySQL hơn nên chọn MySQL.
Các bác cho em hỏi trong tương lai (5-10 năm) PostgreSQL có phát triển mạnh ở VN không ạ? Em còn 1 năm nữa là ra trường nên muốn chuẩn bị tốt về stechstack để khi ra trường kiếm việc cho tiện ạ
Chào các bác,
Em đã dùng MySQL khi học ở trên trường và đang dùng PostgreSQL khi đi làm, cá nhân em thấy PostgreSQL nhỉnh hơn (cá nhân em ạ, bác nào bên MySQL đừng blame em) nhưng mà khi tìm kiếm thử trên ITViec với từ khóa PostgreSQL ra được 21 jobs và MySQl ra 122 jobs, chênh lệch khá lớn. Em biết một phần lý do là vì các dự án từ ngày xưa được viết bằng MySQL cần maintain và do team mạnh về MySQL hơn nên chọn MySQL.
Các bác cho em hỏi trong tương lai (5-10 năm) PostgreSQL có phát triển mạnh ở VN không ạ? Em còn 1 năm nữa là ra trường nên muốn chuẩn bị tốt về stechstack để khi ra trường kiếm việc cho tiện ạ
Mình biết mỗi Mysql thôi. Nó có nhiều hàm tích hợp sẵn. Postgresql thì hay hơn hả bạn.
Vipluckystar
Đang migrate một đống microservices từ oracle sang aurora postgre, từ server lên cloud trên Kubernetes đây, méo có config ngồi mò vs deploy muốn khùng luôn.
Mình biết mỗi Mysql thôi. Nó có nhiều hàm tích hợp sẵn. Postgresql thì hay hơn hả bạn.
em thích Postgresql hơn chỗ có thêm mấy kiểu dữ liệu như JSON, array. Với em có đọc về cái MVCC của nó thì thấy khá hay. Một phần có thể do em tìm hiểu về PostgreSQL nhiều nên em thấy thích nó hơn
Đang migrate một đống microservices từ oracle sang aurora postgre, từ server lên cloud trên Kubernetes đây, méo có config ngồi mò vs deploy muốn khùng luôn.
Bác migrate như nào v ạ, có phải kiểu viết 1 con job để đọc data từ oracle sang postgre k ạ
Bác migrate như nào v ạ, có phải kiểu viết 1 con job để đọc data từ oracle sang postgre k ạ
Ko, tập hợp của một big business (h*b*), nên sẽ xài một con api chứa đường dẫn cấu hình spring.clound cho từng môi trường, xong một con chứa toàn bộ config cho từng môi trường.
Rồi DB team xử các procedures, data ko đc xem.
Ko, tập hợp của một big business (h*b*), nên sẽ xài một con api chứa đường dẫn cấu hình spring.clound cho từng môi trường, xong một con chứa toàn bộ config cho từng môi trường.
Rồi DB team xử các procedures, data ko đc xem.
Dev, sit, uat, preprod, prod.... tùy quy mô dự án.
Kiểu dev xong thì đẩy lên dev, dev teast ok thì đẩy lên sit cho tester test, test xong cho lên uat cho khách hàng test, test ok lên preprod chạy lại toàn bộ business, ok thì lên prod
Ruaconlonton123
ah, em hiểu r ạ
vothevinh
Mysql 5.7 thì như shit compare to Postgres 9. May mắn, MySQL 8 đã thêm nhiều tính năng. Được cái tôi vẫn đánh giá MySQL có performance nhỉnh hơn Postgres, hoặc ít ra là out of the box không cần chỉnh gì hết.
Giờ này ai còn xài MySQl 5.7 là khổ dâm, là tội ác với project nhá
RPG29
PostgreSQL nhìn chung thì ngon hơn MySQL:
Nhiều data type hơn.
SQL strict hơn và theo chuẩn hơn.
Có "real" schema.
Nhiều hàm built-in ngon hơn.
...
PostgreSQL bản cũ (< 10) thì thọt hơn MySQL ở một số chỗ:
Replication, mấy version từ 9.x đổ về trước khá là phức tạp và gian nan.
Không có logical replication.
Thiếu nhiều tool để sharding, monitoring, proxy...
Thiếu built-in job scheduler như MySQL/MariaDB
...
PostgreSQL hiện tại (12, 13, 14) thì rất ngon rồi:
Setup replication (physical, logical) siêu dễ, dễ hơn MySQL rất nhiều.
Full support logical replication.
Nhưng mà vẫn thiếu một số tool so với MySQL.
Nhìn chung thì PostgreSQL giờ dùng nhiều lắm, hầu hết thì mình thấy người ra chuyển từ MySQL/MariaDB sang PostgreSQL chứ hiếm thấy chiều ngược lại.
Tuantuantuan
Postgresql tốn memory hơn
) còn tương lai thì chả phải lo vì đi làm gần như nên biết cả 2
PostgreSQL bản cũ (< 10) thì thọt hơn MySQL ở một số chỗ:
Replication, mấy version từ 9.x đổ về trước khá là phức tạp và gian nan.
Không có logical replication.
Thiếu nhiều tool để sharding, monitoring, proxy...
Thiếu built-in job scheduler như MySQL/MariaDB
...
PostgreSQL hiện tại (12, 13, 14) thì rất ngon rồi:
Setup replication (physical, logical) siêu dễ, dễ hơn MySQL rất nhiều.
Full support logical replication.
Nhưng mà vẫn thiếu một số tool so với MySQL.
Nhìn chung thì PostgreSQL giờ dùng nhiều lắm, hầu hết thì mình thấy người ra chuyển từ MySQL/MariaDB sang PostgreSQL chứ hiếm thấy chiều ngược lại.
Em đọc ở đâu đó có case của Uber chuyển từ posrgresql sang mysql, nhưng lí do thì đúng là do cái logical replication của postgres thời điểm đó (tầm 2015) gì đó
Database mà xài mấy cái riêng biệt của từng DBMS thì lúc cần migrate sang thằng khác nhọc lắm
Fire Of Heart
Muốn hỏi tương lai của nó như nào, thì trước hết hãy trả lời câu hỏi: Nó dc sinh ra để giải quyết bài toán gì? Nó có những điểm nào khác với những thằng DB khác, SQL lẫn NoSQL.
Nếu có 1 thằng nào thay thế nó thì thằng đấy phải đáp ứng những yêu cầu gì?
Về cơ bản, trong tương lai gần 10-20 năm, thì PostgreSQL hay MySQL vẫn sẽ dc sử dụng phổ biến thôi.
Cứ học những cái cơ bản đi, các DB thì cũng xoay quanh các cấu trúc dữ liệu/giải thuật cơ bản thôi.
Chứ đừng có lo xa lo gần là sau này ra trường thì postgresql đi xuống, hay mysql lên ngôi.
Giả sử có vậy thì với kiến thức chắc thì cũng hoàn toàn nhanh chóng tiếp thu dc những cái mới. CÒn nếu ko có kiến thức cơ bản thì thằng nào cũng vậy thôi
Em đọc ở đâu đó có case của Uber chuyển từ posrgresql sang mysql, nhưng lí do thì đúng là do cái logical replication của postgres thời điểm đó (tầm 2015) gì đó
Thực ra vấn đề của Uber nó rất đặc thù và vấn đề này vẫn gây tranh cãi
Ngoài vấn đề replication của Postgres cũ thì Uber có vấn đề với cách mà Postgres handle write operation.
Bản chất các câu lệnh write (update/delete) thì Postgres nó sẽ tạo ra một vùng chứa data mới, còn vùng chứa data cũ nó đánh dấu là bị xóa chứ không thực sự xóa ngay.
Vì cách xử lý như vậy nên Postgres nó có một background process gọi là vacuum để dọn dẹp thu hồi mấy vùng bị đánh dấu xóa.
Theo như Uber thì họ cho rằng process vacuum này gây ảnh hưởng performance...
Mình chưa đào sâu đến mức thế nên ko dám bàn thêm nhưng mà trong cộng đồng có nhiều phản bác
Chuyển sang MySQL thì perf có tệ lắm không bạn nếu so với Oracle?
Tệ thì khỏi nói rồi, hàng Oracle trả tiền bản quyền DBMS, mà còn phải trả thêm tiền bản quyền cái ODBC Driver để kết nối lấy data. Nhưng nó tệ quá thì tăng thêm server, vẫn có lợi hơn.
PostgreSQL nó so với 2 thằng trên thì thế nào nhỉ?
Thằng miễn phí sao so với 2 thằng "đã tốn tiền" được
venom25
thề luôn là những db tool (dbeaver, pgadmin) cho postgres nó ngu không thể tả được.
1/Import data khoảng khoảng 100tr record thì treo sau 10p chạy
2/profiler và execution plan thì cái không trực quan gì cả.
3/delete database trên active connection thì báo không thể delete, mặc dù không mở query nào
Tệ thì khỏi nói rồi, hàng Oracle trả tiền bản quyền DBMS, mà còn phải trả thêm tiền bản quyền cái ODBC Driver để kết nối lấy data. Nhưng nó tệ quá thì tăng thêm server, vẫn có lợi hơn.
Oracle có native driver (OCI) chạy ngon lắm mà. Nó cũng có odbc driver free mà? Sao phải mua?
thề luôn là những db tool (dbeaver, pgadmin) cho postgres nó ngu không thể tả được.
1/Import data khoảng khoảng 100tr record thì treo sau 10p chạy
2/profiler và execution plan thì cái không trực quan gì cả.
3/delete database trên active connection thì báo không thể delete, mặc dù không mở query nào
Bởi mới nói tool cho Postgres nó không được ngon lắm nhưng mà cái engine của nó thì xịn
Import số lượng lớn thì dùng DataGrip ngon hơn mà khá nặng nề, tốt nhất có cách nào export dạng binary sẽ phát huy được khả năng parallel của Postgres
Explain của Postgres ngon hơn MySQL đó chứ, chắc thua đám Oracle + MSSQL thôi.
Drop database thì phải kill connection trước, còn muốn drop kể cả có kết nối thì chờ Postgres 14 có force drop.
m'drak
Postgres phổ biến gần đây vì lý do duy nhất là nó thật sự free và opensource.
Trước đây, lựa chọn số 1 là mysql cho free dbms. Từ hồi oracle mua mysql, người dùng bỏ mysql khá nhiều, vì rắc rối license.
Được quan tâm, lâu ngày postgres lớn mạnh dần, ngon hơn xưa nhiều. Chứ trước đây sài ko nổi luôn, vì lỗi vặt nhiều.
Postgres phổ biến gần đây vì lý do duy nhất là nó thật sự free và opensource.
Trước đây, lựa chọn số 1 là mysql cho free dbms. Từ hồi oracle mua mysql, người dùng bỏ mysql khá nhiều, vì rắc rối license.
Được quan tâm, lâu ngày postgres lớn mạnh dần, ngon hơn xưa nhiều. Chứ trước đây sài ko nổi luôn, vì lỗi vặt nhiều.
Không xài MySQL nhảy qua MariaDB vẫn ổn, ông tác giả của MySQL clone thằng MariaDB, hàng free hoàn toàn.
Không xài MySQL nhảy qua MariaDB vẫn ổn, ông tác giả của MySQL clone thằng MariaDB, hàng free hoàn toàn.
Thấy MariaDb cú pháp lằng nhằng khó hiểu hơn Mysql nhiều. Thôi cứ chung thủy với Mysql.
broke.the.rule
Thằng mysql có 1 cái ko theo chuẩn là cho phép select column ko nằm trong group by. Ông nào lỡ phải migrate liên quan đến cái này thì toác.
Thêm 1 cái nữa là ngày xưa thì unicode trong mysql ko thật sự là unicode, nửa nạc nửa mỡ, lâu ko cập nhật ko biết có thay đổi chưa
Client library của mysql và mariadb như nhau mà, đều là sở hữu của oracle. Bây giờ ko biết mariadb có client library riêng chưa, và license thế nào.
Nói chung dính tới license, sợ rắc rối nên mấy tay to bỏ chạy hết.
MySQL license của nó là GPL, còn MariaDB hình như là LGPL. Nói chung MariaDB xài vô tư.
tieudoan208
Đã dùng trong odoo nhưng thấy hơi tù, chắc tại quen thằng sql vs Oracle nên sang nó viết khó
em thích Postgresql hơn chỗ có thêm mấy kiểu dữ liệu như JSON, array. Với em có đọc về cái MVCC của nó thì thấy khá hay. Một phần có thể do em tìm hiểu về PostgreSQL nhiều nên em thấy thích nó hơn
Json thì mysql 5.7+ cũng hỗ trợ rồi bác. Mà thực ra cái json n cũng là string thôi. Lưu vào db là string rồi lúc lấy ra thì thêm bước convert là được
postgre em thấy dump lởm hơn mysql nhiều hay do em ít sử dụng nhỉ? mysql dump xong restore em thấy chạy ngon chứ thằng postgre đôi lúc cả psql lẫn pg_restore đều không nhận bản dump chứ mysql thì chưa thấy bị bao giờ
JSON của MySQL < 8 & MariaDB 10.4 chỉ là text string không có nhiều chức năng advanced như Postgres. Hiện tại thì không rõ đã có cải tiến thì hay chưa.
Bên Postgres nó phân ra là JSON (text string) và JSONB (binary). JSONB nó có DSL riêng, hỗ trợ indexing, hỗ trợ validation... Trong Postgres 15 sắp tới có thể dùng SQL để query trực tiếp trên JSONB.
postgre em thấy dump lởm hơn mysql nhiều hay do em ít sử dụng nhỉ? mysql dump xong restore em thấy chạy ngon chứ thằng postgre đôi lúc cả psql lẫn pg_restore đều không nhận bản dump chứ mysql thì chưa thấy bị bao giờ
Thường thì issue của dump nó phát sinh do permission, version. Postgres bản thân nó phức tạp hơn MySQL nhiều nên phải chú ý nhiều mấy thứ khác hơn.
karenshii
Cách đây vài năm đi phỏng vấn
Him: em xài những RDBMS SQL nào rồi
Me: em xài nhiều loại lắm. Postgresql, MySQL, Oracle vs MS SQL
Him: em biết nó chúng khác gì nhau không?
Me: em thấy chúng chỉ khác nhau vài cái syntax 1 số câu lệnh đặc biệt, còn lại thì em query CRUD như nhau cả, chả khác gì. Khách hàng bảo dùng cái gì thì xài cái đấy
Chào các bác,
Em đã dùng MySQL khi học ở trên trường và đang dùng PostgreSQL khi đi làm, cá nhân em thấy PostgreSQL nhỉnh hơn (cá nhân em ạ, bác nào bên MySQL đừng blame em) nhưng mà khi tìm kiếm thử trên ITViec với từ khóa PostgreSQL ra được 21 jobs và MySQl ra 122 jobs, chênh lệch khá lớn. Em biết một phần lý do là vì các dự án từ ngày xưa được viết bằng MySQL cần maintain và do team mạnh về MySQL hơn nên chọn MySQL.
Các bác cho em hỏi trong tương lai (5-10 năm) PostgreSQL có phát triển mạnh ở VN không ạ? Em còn 1 năm nữa là ra trường nên muốn chuẩn bị tốt về stechstack để khi ra trường kiếm việc cho tiện ạ
Sở dĩ thím thấy job MySQL nó nhiều hơn do MySQL nó phổ biến hơn thôi. Chứ PostgreSQL nó mới nổi mấy năm gần đây. Nói chung 2 thằng này vẫn phát triển, cùng với các thằng khác nên không đáng lo ngại. Với lại ngoài Oracle ra không ai chỉ tuyển mỗi MySQL hay PostgreSQL đâu. Ít nhất là phải biết 1 cái, 2 cái thì càng tốt. Sau này đi làm đâu phải thích đc làm cái nào là làm đâu. Đầu tiên là phải theo khách hàng, 2 là theo thằng TechLead, Leader, ko biết thì tìm hiểu.
Lê Thị Hồng
Nội dung không phù hợp
Như tit ạ. E search google mà dài dòng quá. Không nhớ hết nổi.
chọn cái nào mà backend framework của bọn tích hợp tốt hơn
nếu không có thì 2 cái như nhau
Đặc thù
- PostgreSQL: là object-relation database (không phải pure RDBMS)
- concurrent index creation (non-blocking)
- partial index (index with condition)
- table inheritance
- function overloadding
- free, không cần mua license
- lưu json hoặc array data types
- MySQL: pure RDBMS
- nhanh hơn PostgreSQL nếu workload là read heavy
- replication nhanh hơn (ở logical layer thay vì physical layer như Postgres < 10)
- zero downtime upgrade (Postgres upgrade sau 10.x có thể near zero downtime upgrade)
chọn cái nào mà backend framework của bọn tích hợp tốt hơn
nếu không có thì 2 cái như nhau
Đặc thù
- PostgreSQL: là object-relation database (không phải pure RDBMS)
- concurrent index creation (non-blocking)
- partial index (index with condition)
- table inheritance
- function overloadding
- free, không cần mua license
- lưu json hoặc array data types
- MySQL: pure RDBMS
- nhanh hơn PostgreSQL nếu workload là read heavy
- replication nhanh hơn (ở logical layer thay vì physical layer như Postgres < 10)
- zero downtime upgrade (Postgres upgrade sau 10.x có thể near zero downtime upgrade)
Thanks thím
existence is pain
đúng cái đang định hỏi
Fire Of Heart
Cứ mỗi ngày mỗi ông hỏi 1 lần vậy
Gom hết vô chung 1 thread thôi