Chuyển đổi từ MySQL sang PostgreSQL?


8

Tôi đã trải qua năm ngoái trở nên thực sự thoải mái với MySQL, nhưng do xu hướng ngày càng tăng và mong muốn đồng nhất hóa các ứng dụng web của tôi với Heroku, thay vào đó tôi muốn bắt đầu sử dụng PostgreQuery cho các ứng dụng web của mình. Có một nguồn tài nguyên để học PostgreSQL, nhưng tôi thực sự không muốn các khái niệm cơ sở dữ liệu được giải thích lại từ đầu và tôi không muốn phải học lại tất cả những thứ tương tự.

Những khác biệt quan trọng mà tôi cần phải hiểu - cú pháp và khái niệm - giữa MySQL và PostgreQuery sẽ ảnh hưởng đến tôi hàng ngày là gì?


1
Không có chữ 'G' trong 'PostgreSQL'.
tdammers

Câu trả lời:


4

Nó phụ thuộc phần nào vào cách bạn đang sử dụng cơ sở dữ liệu. Nếu bạn đang sử dụng ORM, bạn có thể không nhận thấy bất kỳ vấn đề nào cả.

Tôi đã chuyển một ứng dụng sang sử dụng Postgresql (để triển khai thành Heroku), nhưng chỉ sau khi phát hiện ra các tình huống mà SQL được tạo bởi Rails hoạt động tốt trên SQLite, nhưng không phải trên Postgresql. Lúc nào cũng vậy, các vấn đề được gây ra khi các phép nối đang truy vấn cùng một tên cột trên nhiều bảng. SQLite không quan tâm, nhưng Postgresql muốn tên quan hệ được chỉ định nếu nó nằm trong mệnh đề 'where'.

Mặc dù tôi đã làm việc với cả MySQL và Postgresql, tôi không chắc chắn về bất kỳ sự khác biệt khái niệm cơ bản nào giữa chúng. Cả hai đều là cơ sở dữ liệu máy khách-máy chủ khá vững chắc, mặc dù PG dường như đang tạo ra danh tiếng tốt hơn.

Tuy nhiên, chắc chắn có một số khác biệt cú pháp quan trọng giữa MySQL và Postgresql. Tôi đã tìm thấy một hướng dẫn phù hợp cho những người ở đây: http://en.wikibooks.org/wiki/Converting_MyQuery_to_PostgreQuery


1
"SQLite không quan tâm". Âm thanh như một lý do tốt để sử dụng Postgres. Hai bảng có cùng tên cột có thể lưu trữ dữ liệu hoàn toàn khác nhau và không liên quan.
mike30

1

Những khác biệt quan trọng mà tôi cần phải hiểu - cú pháp và khái niệm - giữa MySQL và PostgreQuery sẽ ảnh hưởng đến tôi hàng ngày là gì?

Cái lớn nhất là cơ sở dữ liệu ở đó. MySQL được xây dựng, về cơ bản, là một kho lưu trữ thông tin cho ứng dụng của bạn. PostgreSQL có một giải pháp quản lý thông tin cho một số ứng dụng đánh cùng một dữ liệu. Sự khác biệt này xuất hiện theo nhiều cách khác nhau. Ví dụ: MySQL cho phép các ứng dụng thiết lập sql_mode của riêng chúng, điều này ảnh hưởng đến dữ liệu nào sẽ được coi là hợp lệ. PostgreSQL không có tùy chọn như vậy. Do đó, trong MySQL, người ta rất khuyến khích nghĩ SQL là một API riêng cho ứng dụng, trong khi trong PostgreQuery là một API có thể được chia sẻ an toàn giữa các ứng dụng. Điều này dẫn đến rất nhiều sự khác biệt nhỏ. MySQL có thể dễ dàng hơn để chuyển một ứng dụng sang, nhưng PostgreSQL có thể dễ dàng chuyển một môi trường dữ liệu sang ....

Bạn có thể tìm thấy những điều sau đây để được giúp đỡ: http://ledgersmbdev.blogspot.com/2012/09/or-modelling-interlude-postgresql-vs.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.