MySQL vs. SQL Server vs. Oracle [닫기]


78

저는 항상 MySQL 만 사용하고 다른 데이터베이스 시스템은 사용하지 않았습니다.

오늘 회사 회의에서 질문이 나왔는데 제가 알지 못했던 것이 당황 스러웠습니다. 개발자에게 MS 또는 Oracle은 MySQL에없는 지각 변동 기능을 제공하고 MS와 Oracle이 시스템 비용을 청구 할 수있는 기능은 무엇입니까?



4
이 질문은 MySQL이 사용 비용을 청구하는 것을 허용하지 않는 것처럼 공식화되었습니다. 어디에도 없습니다 수 있습니다 무료로 MS와 오라클, 그들은 단지 그것을 할. 그리고 MySQL은 오픈 소스 와 다릅니다 . 내가 원한다면 30 분 만에 반쯤 구운 저장-복원 스크립트를 작성하고 비용을 청구 할 수 있습니다. 그렇게하기 위해 아무것도 필요하지 않습니다.
Luka Ramishvili

11
좋아,하지만 그의 질문을 다시 말하면; 똑똑한 사람이 RDBMS Y를 무료로 선택할 수 있는데 왜 RDBMS X에 대한 비용을 고려할 수 있습니까?
Karl

2
이 질문이 정확하지 않다고 생각합니다. MySQL은 비즈니스 용도로 무료가 아니지만 MS SQL Server에는 해당 버전이 있습니다. MS 오퍼링은 그다지 제한적이지 않으며 대부분의 기능이 활성화 된 10GB 데이터베이스를 허용합니다. SQL Server가 무료이고 더 많은 기능을 가지고 있는데 왜 MySQL에 비용을 지불해야하는지에 대한 질문은 역전 될 수 있습니다. 아마도 내 설치이지만 MySQL 버그가 있고 느립니다.
MikeKulls

3
이 질문은 서로 다른 DB의 비교에 관한 것이기 때문에 주제에서 벗어난 것으로 보입니다
Noel

답변:


36

저는 다른 해설자들이 상용 솔루션과 함께 번들로 제공되는 추가 비 핵심 RDBMS 기능을 모두 강조하는 것이 옳다고 생각합니다.

다음은 "추가"기능을 이해하기 위해 찾아 볼 가치가있는 Oracle 에디션 및 기능의 매트릭스입니다. 특히 자체 버전을 개발하고 지원하는 데 드는 비용 (가능하다면)의 맥락에서 볼 수 있습니다. MySQL과 같은 제품 : http://www.oracle.com/us/products/database/product-editions-066501.html

예를 들어, "사용자가 변경 사항을 적용한 후 최대 1 주일까지 삭제 / 업데이트 한 데이터의 이전 버전을 복구 할 수 있어야합니다."라는 요구 사항이있는 경우 이는 특정 개발 오버 헤드를 의미합니다. 오라클의 Flashback Query와 같은 내장 기능이없는 시스템에서는 훨씬 더 높을 것입니다.


+1, Oracle 기능에 대한 좋은 요약.
DCookie 2009

Oracle 기능에 대한 좋은 정보
Hector Minaya

23

Oracle 및 MSSQL의 순수한 RDBMS 계층은 주로 MySQL 및 InnoDB보다 더 성숙한 프로그래밍 가능한 환경을 제공합니다. T-SQL 및 PL / SQL은 아직 MySQL 저장 프로 시저 및 트리거와 일치시킬 수 없습니다.

다른 차이점은 구문과 약간의 의미 차이로 작업을 더 쉽게 또는 어렵게 만듭니다 (예 : 상위 500 개 대 제한 / 오프셋).

그러나 진정한 킬러는 MySQL에 아직없는 MSSQL (Reporting Services, Analysis Services) 및 Oracle (Data Warehousing, RAC)의 RDBMS 계층 위에 수많은 통합 도구와 서비스가 있다는 것입니다.


12

MySQL은 무료가 아닙니다!

무료로 널리 알려져 있지만 MySQL이 포함 된 소프트웨어 패키지를 판매하거나 배포하는 경우 다소 심각한 제한이 따릅니다. 이러한 경우 오픈 소스 프로젝트 또는 비영리 단체에만 무료입니다. 데이터베이스와 드라이버를 나머지 애플리케이션과 완전히 분리하고 고객이 스스로 MySQL을 다운로드하여 설치하도록 할 수 있다면 괜찮을 것입니다.

그렇지 않으면 "표준"버전의 경우 연간 $ 2,000의 비용이 들며 이는 SQL Server 라이선스 비용과 거의 비슷합니다.

둘 다 매우 좋은 데이터베이스이지만 SQL Server의 장점은 다음과 같습니다.

  • 풍부하고 표현력이 풍부한 절차 언어 (T-SQL)
  • 쓰기 집약적 인 환경에서 더 나은 쿼리 최적화 프로그램 및 더 나은 성능
  • 프로그래밍 환경, ETL 도구 (SSIS), 차원 모델링 (SSAS),보고 환경 (SSRS) 및 상당히 정교한 작업 스케줄러를 포함하는 강력한 보조 도구 및 기능 세트입니다.
  • 저장 프로 시저 및 UDF의 대화 형 디버깅.
  • 대부분의 관리 작업을 "클릭"방식으로 수행 할 수있는 비교적 사용하기 쉬운 창 기반 관리 도구입니다.

많은 사람들이 이데올로기 적으로 Microsoft 도구를 사용하거나 Windows 환경에 갇혀있는 것을 반대하고 있으며 저는이를 이해할 수 있습니다. 그러나 MySQL은 비즈니스 용도로 무료가 아니며 널리 이해되지 않는 것 같습니다.

MySQL의 라이센스 정책을 검토하려면 웹 사이트 http://www.mysql.com/about/legal/licensing/index.html 에서 살펴보십시오 .


동의합니다-MySql은 공짜가 아닙니다 (공짜 점심 같은 것은 없습니다). 그러나 Visual Studio를 제외하고는 많은 Microsoft 제품이 그다지 좋지 않다고 생각합니다. 사이베이스는 아주 좋은 데이터베이스 이럴 것 같다
에드 치유

3
하, 저는 사실이 사람들 중 하나였습니다. 나는 정말 MySQL이 무료라고 생각했습니다. 간단한 질문입니다. "더 나은 쿼리 최적화 프로그램과 쓰기 집약적 인 환경에서 더 나은 성능"을 볼 수있는 통계 / 링크가 있습니까?
John Crawford

34
그릇된. MySQL의 커뮤니티 버전은 GNU GPL v2 라이센스에 따라 라이센스가 부여됩니다. 즉, 어떤 목적 으로든 소프트웨어를 무료로 사용할 수 있습니다. (소프트웨어를 수정하고 재배포하려는 경우 수정 된 제품은 동일한 GPL v2 오픈 소스 라이선스에 따라 제공되어야합니다. 그러나 단순한 사용 및 수정 (수정 된 제품을 재배포하지 않는 한)도 무료입니다. 조건없이 어떤 목적 으로든.)
Luca

정답이 아닙니다. gnu.org에서 다음 FAQ를 참조하십시오 : gnu.org/licenses/old-licenses/…
Curt

9
Curt, (1) MySQL을 다른 프로그램에 통합하는 것이 아니라 별도의 소프트웨어로 사용하는 것입니다 (클라이언트-서버 아키텍처에서); FAQ에서 : "두 프로그램이 잘 분리되어 있으면 [...] 두 프로그램을 별도의 프로그램으로 취급 할 수 있습니다."(2) MySQL을 독점 소프트웨어에 실제로 통합하더라도 (즉, 라이브러리로 사용) , 재배포하지 않는 한 GPL에 따라 독점 소프트웨어를 재 라이선스 할 필요가 없습니다. FAQ에서 : "GPL은 프로그램의 모든 확장 버전이 GPL에 따라 릴리스되어야한다고 말합니다."
Luca

9

오라클이 mysql을 통해 가지고있는 다른 것들.

  • 대기열
  • 내부 작업 일정
  • 성숙한 저장 프로 시저 언어
  • 패 티셔 닝 된 테이블
  • 세분화 된 액세스 제어 및 감사
  • 강력한 복구 기능 (예 : flashback, rman, dataguard)
  • 원격 데이터베이스 링크
  • 응용 표현

5
MySql은 5.1부터 분할 된 테이블 (명시 적으로)을 지원합니다. dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
Sharique

8

다른 벤더의 RDBS를 관리하기 전까지 Oracle은 "독자는 작성자를 차단하지 않고 작성자는 독자를 차단하지 않습니다."라는 말을 자주 반복하지 않았습니다. 저는 Oracle DBA로서 8 년 동안 잠금 문제를 처리하는 방법에 대해 많이 알지 못했습니다. 2 Informix 및 3 또는 SQL Server의 수년 동안 잠금에 대해 많이 알고 있습니다.

따라서 지원 및 비 RDBMS 기능에 대한 의견 외에도 잠금 동작을 추가합니다.


동일한 행 집합에 대해 초당 100 회의 읽기 / 업데이트를 수행하는 1m 행 테이블의 동일한 기본 코드베이스는 Oracle을 빛나게하고 (당시) SQL Server 스핀 잠금을 망각으로 만듭니다. 예, 상황이 바뀌었지만 요점은 내가 Oracle 회사에 대해 싫어하는 것만 큼 데이터베이스 제품이 최고라는 것입니다.
Jé Queue

SQL 서버 스냅 샷 격리로 해결할 수있는 문제 마이크로 소프트 SQL 서버와이 진짜 문제를 - SQL Server 2008의 추가
NTDLS

5

나열 할 기능이 너무 많습니다. nullptr의 메시지에서 Wikipedia 참조를 참조하십시오. 그러나 회의에서 실제로 묻는 질문은 "개발자에게 MS 또는 Oracle이 제공하는 MySQL이 지연되는 기능 중 MS와 Oracle이 시스템에 대해 비용을 청구 하고 회사에서 효과적으로 활용할 수있는 기능은 무엇입니까?"라는 질문이라고 생각합니다.

모든 장점은 귀하의 요구에 부합한다면 진정한 장점입니다 ...



4

참고 : Oracle에 대해 말할 수 없으므로 SQL Server에 대해서만 대답하겠습니다.

물론 MERGE 문, BULK INSERT, GROUPING SET 등과 같은 데이터베이스 엔진의 사소한 차이점입니다.

그러나 더 큰 부분은 Integration Services, Analysis Services 및 Reporting Services와 같은 것입니다. 제 생각에 그것들은 비용 대비 절대적으로 가치가있는 중요한 기술입니다.


어떤 사람들 인해 호환성 제약과 현재의 시스템 내에서 오라클이나 MySQL의 구현의 두통에 마이크로 소프트 SQL 서버로 이동하도록 강요
JsonStatham

4

MySQL은 Oracle과 MSSQL이 제공하는 더 풍부한 프로그래밍 환경을 제공하지 않았습니다. 특히 저장 프로 시저가 없었던 초기 버전에서는 더욱 그렇습니다. 내 관점에서 나는 DAO 또는 ORM 매퍼 등을 통해 대부분의 비즈니스 로직을 애플리케이션에 넣는 경향이 있습니다. 따라서 데이터베이스 엔진은 덜 중요하며 이론적으로 애플리케이션은 전송 가능합니다. 관리 관점에서 MSSQL은 데이터베이스 소유 작업을 훨씬 쉽게 만들어주는 많은 이점 (이미 나열되어 있음)을 제공합니다. Microsoft는 또한 개발을 위해 훌륭하고 가벼운 SQLExpress를 제공합니다.이 SQLExpress는 작업하기 쉬웠으며 Visual Studio에 잘 통합됩니다.


2
운송성에 관해서는 "이론상"에 중점을두고 있습니다.;) 코드를 운송 성을 허용하는 가장 낮은 공통 분모로 낮추는 것은 실제로 운송에 대한 욕구를 조장하는 경우 인 것 같습니다. 성능 문제에 대한 과녁의 데이터베이스.
David Aldridge

3

ThinkJet의 답변에서 영감을 얻은 또 다른 요소는 "보다 성능이 뛰어난 응용 프로그램을 더 빠르고 저렴하게 개발하기 위해 데이터베이스 독립성을 어느 정도 포기할 의향이 있습니까?"라고 생각합니다. 회사가 강조하는 것이 모든 코드가 데이터베이스간에 이식 가능해야한다는 것이라면 가장 단순한 RDBMS 이외의 다른 것을 사용하는 데는 별 의미가 없으며 Oracle과 Microsoft가 제공 한 개선 사항과 이점은 아무 의미가 없습니다.

진정한 데이터베이스 독립성을 깨는 데는 거의 걸리지 않으며, 제 철학은 SQL 향상, PL / SQL 등과 같은 비용을 지불 한 모든 기능을 활용하는 데 전념해야한다는 것입니다.

물론 다른 것들은 다를 수 있습니다.


3

이 질문은 SQL Server / Oracle이 비용을 청구 할 수있는 개발 기능이라는 암시 적 가정이 있다고 생각합니다. 나는 그것이 더 많은 구현 / 지원이라고 생각합니다.

핫 백업은 적어도 대부분의 설치에서 비용을 지불 할 가치가있는 주요 기능입니다.

Oracle의 경우 가장 큰 부가가치는 RAC입니다. 복잡한 복제없이 동일한 데이터 (즉, 동일한 디스크)를 처리하는 여러 서버가 있습니다. (일반적으로) 개발자에게는 분명하지 않습니다.


나는 그것을 놓쳤다. 감사합니다 :)
Kshitij Saxena -KJ- 2009

1

내가 정말 좋아하는 일부 Oracle 기능은

  • Real Application Clusters, 데이터베이스 클러스터를 만드는 매우 강력한 방법
  • 빠르고 새로 고칠 수있는 구체화 된 뷰, 쿼리 결과를 저장하고 업데이트하는 매우 효율적인 방법
  • 쿼리 결과의 하위 집합에 대한 함수를 효율적으로 그룹화 할 수있는 분석 함수 (일명 창 함수)입니다. 이렇게하면 대부분의 경우 자체 조인을 피할 수 있습니다.

내가 아는 한, 이들 중 어느 것도 MySQL에서 사용할 수 없습니다. 특히 엔터프라이즈 에디션과 옵션에는 더 많은 유용한 기능이 있습니다.

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