Cạm bẫy của việc sử dụng MySQL làm lựa chọn cơ sở dữ liệu của bạn? [đóng cửa]


20

Tôi đã đọc trực tuyến nhiều lần rằng MySQL là một cơ sở dữ liệu tồi. Những nơi tôi đã đọc này bao gồm một số chủ đề trên Reddit, nhưng dường như họ không bao giờ đi sâu vào lý do tại sao nó là một sản phẩm kém.

Có sự thật nào cho tuyên bố này? Tôi chưa bao giờ sử dụng nó ngoài một kịch bản CRUD rất đơn giản, và đó là cho một dự án đại học trong năm thứ hai của tôi.

Những cạm bẫy, nếu có , là gì khi chọn MySQL làm cơ sở dữ liệu của bạn?


7
Tất nhiên, cạm bẫy chính là những người quá khích Postgres sẽ cố gắng khiến bạn không an tâm về lựa chọn của mình.
Dan Ray

Wikimedia sử dụng nó, vì vậy nó không nên quá tệ.
Arlen Beiler

Câu trả lời:


32

Có hai loại cạm bẫy khác nhau, đó là sử dụng MySQL làm hương vị RDBMS của bạn và loại sử dụng RDBMS thay vì các loại cơ sở dữ liệu khác.

Sử dụng MySQL thay vì RDBMS thay thế:

  • Xem bảng so sánh wikipedia này để biết các so sánh khác nhau của MySQL với các RDBMS khác.
  • Bạn rất có thể sẽ thích Microsoft SQL Server nếu bạn đang xây dựng một ứng dụng web ASP.NET, vì hệ thống được thiết kế để hoạt động tốt với nhau, tôi tin cho cả nhà phát triển và người quản lý CNTT
  • Bạn có thể thích Oracle nếu bạn cần một thiết lập DB nâng cao hơn liên quan đến phân cụm (Oracle RAC) hoặc các thủ tục DB nâng cao. Không phải là MySQL không hỗ trợ nhiều tính năng, nhưng từ những gì tôi thấy, bạn có nhiều khả năng tìm thấy một DBA có kinh nghiệm, người biết công cụ này cho Oracle hơn là MySQL.
  • Xem câu hỏi này tại SO để so sánh rộng rãi PostgreSQL với MySQL nói rằng nó tốt hơn tôi có thể.
  • Thậm chí nhiều SO: Nhược điểm của mysql so với các cơ sở dữ liệu khác

Sử dụng RDBMS thay vì các loại khác:

Tất cả những gì đang nói, MySQL là một cơ sở dữ liệu tuyệt vời và tôi đã không làm việc tại một công ty trong 8 năm qua đã không sử dụng nó, trong rất nhiều ứng dụng web (như thương mại điện tử, trang web / ứng dụng , doanh nghiệp / B2B, trò chơi web). Đối với phần lớn các trường hợp sử dụng ứng dụng web điển hình, đó là một lựa chọn tuyệt vời.


4
Câu trả lời tuyệt vời, đặc biệt là cho MySQL so với RDBMS và RDBMS so với NoQuery
Josh K

1
SQL Server cũng có phân cụm và các tính năng nâng cao. Nhưng bạn chắc chắn rằng bạn sẽ gặp nhiều khó khăn hơn trong việc tìm kiếm một chuyên gia cơ sở dữ liệu myQuery, người có thể xử lý những việc như vậy hoặc thậm chí biết cách thiết kế chúng. Những người này chủ yếu chuyên về Oracle, db2 hoặc SQL Server.
HLGEM

1
@HLGEM, cảm ơn vì đã làm rõ điều đó, tôi muốn nói lên những điểm mạnh của Oracle, chứ không phải các DBMS khác không hỗ trợ các tính năng đó. SQL Server hoàn toàn có khả năng trong các lĩnh vực đó, nó chỉ có nhược điểm tự nhiên là phụ thuộc Windows cho một công ty không sử dụng Windows cho bất kỳ điều gì khác.
Nicole

1
Điều đó hoàn toàn đúng, sự phụ thuộc của Windows làm tổn thương SQL Server.
HLGEM

8

MySQL hiện đang nằm dưới sự kiểm soát của Oracle - mặc dù nguồn mở họ vẫn quyết định hướng của dự án và những gì được đưa vào.

Về mặt cơ sở dữ liệu tồi, không có gì đơn giản hơn một số cơ sở dữ liệu khác.

Nếu bạn đang tìm kiếm điểm yếu, tôi sẽ chỉ ra cho bạn, hãy lấy PostgreSQL làm ví dụ.

  1. MySQL thiếu các loại container và mảng.
  2. MySQL thiếu các chuỗi thực sự (chúng sử dụng tự động tăng) - Trình tự Postgres cho phép nhiều bảng sử dụng một chuỗi để bạn có thể đảm bảo tính chính xác trên nhiều bảng.
  3. Postgres tuân thủ ACID, MySQL tuân thủ một phần.
  4. Postgres thực hiện thay đổi ký tự và văn bản theo cùng một cách (Bảng Toast) - cách tiếp cận này hầu hết sẽ tranh luận là tốt hơn so với MySQL.
  5. Postgres chỉ có một phụ trợ lưu trữ - điều này có nghĩa là bạn được đảm bảo có các tính năng giống nhau ở mọi nơi.
  6. Postgres cho phép các chức năng phía máy chủ được viết bằng TCL, Python, R và Perl.
  7. Postgres hỗ trợ tốt cho các trình điều khiển không đồng bộ trong Python - Tôi nghĩ rằng nó hơi bị lỗi hoặc bỏ lỡ với MySQL

6

Trong lịch sử, nó rất yếu về hỗ trợ giao dịch và các giao dịch rất quan trọng nếu bạn cần giữ một cơ sở dữ liệu nhất quán. Ngày nay, bản rap lớn là Oracle sở hữu nó.


4

Trong một thời gian dài, MySQL là một cơ sở dữ liệu "đồ chơi". Nó không xử lý các lựa chọn phụ lồng nhau, không hỗ trợ phân vùng dữ liệu, không cung cấp nhiều mức cô lập giao dịch, không hỗ trợ kích hoạt hoặc thủ tục lưu trữ - rất nhiều thứ. Rất nhiều người đến từ nền tảng Oracle hoặc SQL Server đã loại bỏ nó.

Tôi nghĩ lý do thực sự mà bạn không thấy nhiều danh sách về những thiếu sót của MySQL là nó có một cơ sở người hâm mộ khá cuồng nhiệt, những người xóa hoặc hạ bệ bất kỳ đề cập công khai nào về chúng. Tôi biết bất cứ khi nào tôi đề cập đến bất kỳ vấn đề nào tôi gặp phải với nó, các phản hồi có xu hướng cực kỳ tiêu cực.


3

MySQL tuân thủ ACID khi được sử dụng với công cụ lưu trữ InnoDB - không có lý do gì để MySQL không tuân thủ ACID (kể từ phiên bản 5.5 InnoDB là công cụ lưu trữ mặc định).

MySQL nhận được rất nhiều báo chí xấu bởi vì nó thường được sử dụng (hoặc cho đến khi NoQuery ra đời) là RDBMS được lựa chọn bởi những người hầu như không cần cơ sở dữ liệu (và có lẽ có kỹ năng RDBMS hạn chế) và vì vậy sử dụng nó một cách khá lộn xộn cách thức.

Tôi đã sử dụng MySQL rất nhiều và vì 5.x đã xuất hiện rất ít để phàn nàn về nó cho 95% cài đặt có giữa các yêu cầu đường bộ.


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.