데이터베이스 선택으로 MySQL을 사용하는 데 따른 위험은 무엇입니까? [닫은]


20

MySQL이 나쁜 데이터베이스라는 여러 사례를 온라인에서 읽었습니다. 내가 읽은 장소에는 Reddit의 스레드가 포함되어 있지만 제품이 좋지 않은지대해서는 탐구하지 않는 것 같습니다 .

이 주장에 진실이 있습니까? 나는 아주 간단한 CRUD 시나리오를 넘어서 사용해 본 적이 없으며, 이는 2 년차 대학 프로젝트를위한 것이 었습니다.

어떤 함정 이있는 경우 데이터베이스로 MySQL을 선택할 때,이 있는가?


7
물론 주요 함정은 Postgres 열성 자들이 당신의 선택에 대해 불안감을 느끼게 할 것이라는 것입니다.
Dan Ray

Wikimedia는 그것을 사용하므로 너무 나쁘지 않아야합니다.
Arlen Beiler

답변:


32

RDBMS 의 풍미로 MySQL 을 사용하는 것과 다른 유형의 데이터베이스 대신 RDBMS를 사용하는 것의 두 가지 종류의 함정 이 있습니다.

대체 RDBMS 대신 MySQL 사용 :

  • MySQL과 다른 RDBMS의 다양한 비교에 대해서는이 위키 백과 비교표를 참조하십시오 .
  • ASP.NET 웹 응용 프로그램을 구축하는 경우 시스템이 잘 작동하도록 설계되었으므로 개발자와 IT 관리자 모두에게 적합하다고 생각되므로 Microsoft SQL Server를 선호 할 것입니다.
  • 클러스터링 (Oracle RAC) 또는 고급 DB 절차와 관련된 고급 DB 설정이 필요한 경우 Oracle을 선호 할 수 있습니다. MySQL이 많은 기능을 지원하지는 않지만, 내가 본 것 중에서 MySQL보다 Oracle에 대해이 지식을 알고있는 숙련 된 DBA를 찾을 가능성이 훨씬 높습니다.
  • PostgreSQL과 MySQL을 광범위하게 비교하여 내가 할 수있는 것보다 낫다는 것은 SO 에서이 질문을 참조하십시오 .
  • 더 많은 SO : mysql과 다른 데이터베이스의 단점

다른 유형 대신 RDBMS 사용 :

이미 말한 것처럼 MySQL은 훌륭한 데이터베이스이며, 지난 8 년 동안 사용하지 않은 회사에서 다양한 웹 응용 프로그램 (전자 상거래, 웹 사이트 / 앱 등)에서 일한 적이 없습니다. , 엔터프라이즈 / B2B, 웹 게임). 일반적인 웹 응용 프로그램 사용 사례의 대부분은 훌륭한 선택입니다.


4
특히 MySQL과 RDBMS, RDBMS와 NoSQL에 대한 훌륭한 답변
Josh K

1
SQL Server에는 클러스터링과 고급 기능도 있습니다. 그러나 그러한 것을 처리하거나 설계 방법을 알고있는 mySQL 데이터베이스 전문가를 찾는 데 더 많은 어려움을 겪게 될 것입니다. 이 사람들은 대부분 Oracle, db2 또는 SQL Server를 전문으로합니다.
HLGEM

1
@HLGEM은 다른 DBMS가 이러한 기능을 지원하지 않는다는 것이 아니라 Oracle의 강점을 보여 주겠다는 점을 분명히 해주셔서 감사합니다. SQL Server는 이러한 영역에서 절대적으로 가능하며 Windows를 다른 용도로 사용하지 않는 회사에게는 자연스러운 Windows 종속성 단점이 있습니다.
Nicole

1
즉, Windows 종속성으로 인해 SQL Server가 손상됩니다.
HLGEM

8

MySQL은 현재 Oracle의 통제를 받고 있습니다. 비록 오픈 소스이지만 여전히 프로젝트의 방향과 도입 대상을 결정합니다.

나쁜 데이터베이스라는 측면에서 다른 데이터베이스보다 '단순'하지 않습니다.

당신이 약점을 찾고 있다면 내가 당신을 위해 지적 할 것입니다, 예를 들어 PostgreSQL을 보자.

  1. MySQL에는 컨테이너 유형과 배열이 없습니다.
  2. MySQL에는 실제 시퀀스가 ​​없습니다 (자동 증분 사용)-Postgres 시퀀스는 여러 테이블이 단일 시퀀스를 사용하도록 허용하므로 여러 테이블에서 카디널리티를 보장 할 수 있습니다.
  3. Postgres는 ACID를 준수하고 MySQL은 부분적으로 호환됩니다.
  4. Postgres는 문자 변경 및 텍스트를 동일한 방식으로 구현합니다 (토스트 테이블).이 접근법은 대부분 MySQL보다 낫다고 주장합니다.
  5. Postgres에는 스토리지 백엔드가 하나만 있습니다. 이는 모든 곳에서 동일한 기능을 보장한다는 의미입니다.
  6. Postgres는 TCL, Python, R 및 Perl로 작성된 서버 측 기능을 허용합니다.
  7. Postgres는 Python에서 비동기 드라이버를 잘 지원합니다 .MySQL에서 약간 맞았거나 놓친 것 같습니다.

6

과거에는 트랜잭션 지원이 취약했으며 일관성있는 데이터베이스를 유지해야하는 경우 트랜잭션이 중요합니다. 요즘에는 랩이 오라클이 소유하고 있다는 큰 결말이 있습니다.


4

오랫동안 MySQL은 "장난감"데이터베이스에 가깝습니다. 중첩 된 하위 선택을 처리하지 않았으며 데이터 파티셔닝을 지원하지 않았으며 여러 트랜잭션 격리 수준을 제공하지 않았으며 트리거 또는 저장 프로 시저를 지원하지 않았습니다. Oracle 또는 SQL Server 백그라운드에서 온 많은 사람들이이를 기각했습니다.

MySQL의 단점 중 많은 목록이 표시되지 않는 실제 이유는 공개 언급을 삭제하거나 공감하는 다소 기이 한 팬 기반을 가지고 있기 때문이라고 생각합니다. 나는 내가 가진 문제를 언급 할 때마다 응답이 압도적으로 부정적인 경향이 있음을 알고 있습니다.


3

MySQL은 InnoDB 스토리지 엔진과 함께 사용될 때 ACID를 준수합니다. 그렇게하지 않아도 MySQL은 ACID를 준수합니다 (릴리스 5.5부터는 기본 스토리지 엔진).

MySQL은 데이터베이스를 거의 필요로하지 않았고 (혹은 RDBMS 기술이 제한되어있는) 사람들이 선택한 RDBMS로 자주 사용 (또는 NoSQL이 출현 할 때까지) 되었기 때문에 다소 악의적 인 언론이되었습니다. 방법.

나는 MySQL을 많이 사용했으며 5.x 이후로 도로 요구 사항이 중간 인 설치의 95 %에 대해 불평 할 것이 거의 없습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.