저는 항상 MySQL 만 사용하고 다른 데이터베이스 시스템은 사용하지 않았습니다.
오늘 회사 회의에서 질문이 나왔는데 제가 알지 못했던 것이 당황 스러웠습니다. 개발자에게 MS 또는 Oracle은 MySQL에없는 지각 변동 기능을 제공하고 MS와 Oracle이 시스템 비용을 청구 할 수있는 기능은 무엇입니까?
저는 항상 MySQL 만 사용하고 다른 데이터베이스 시스템은 사용하지 않았습니다.
오늘 회사 회의에서 질문이 나왔는데 제가 알지 못했던 것이 당황 스러웠습니다. 개발자에게 MS 또는 Oracle은 MySQL에없는 지각 변동 기능을 제공하고 MS와 Oracle이 시스템 비용을 청구 할 수있는 기능은 무엇입니까?
답변:
저는 다른 해설자들이 상용 솔루션과 함께 번들로 제공되는 추가 비 핵심 RDBMS 기능을 모두 강조하는 것이 옳다고 생각합니다.
다음은 "추가"기능을 이해하기 위해 찾아 볼 가치가있는 Oracle 에디션 및 기능의 매트릭스입니다. 특히 자체 버전을 개발하고 지원하는 데 드는 비용 (가능하다면)의 맥락에서 볼 수 있습니다. MySQL과 같은 제품 : http://www.oracle.com/us/products/database/product-editions-066501.html
예를 들어, "사용자가 변경 사항을 적용한 후 최대 1 주일까지 삭제 / 업데이트 한 데이터의 이전 버전을 복구 할 수 있어야합니다."라는 요구 사항이있는 경우 이는 특정 개발 오버 헤드를 의미합니다. 오라클의 Flashback Query와 같은 내장 기능이없는 시스템에서는 훨씬 더 높을 것입니다.
Oracle 및 MSSQL의 순수한 RDBMS 계층은 주로 MySQL 및 InnoDB보다 더 성숙한 프로그래밍 가능한 환경을 제공합니다. T-SQL 및 PL / SQL은 아직 MySQL 저장 프로 시저 및 트리거와 일치시킬 수 없습니다.
다른 차이점은 구문과 약간의 의미 차이로 작업을 더 쉽게 또는 어렵게 만듭니다 (예 : 상위 500 개 대 제한 / 오프셋).
그러나 진정한 킬러는 MySQL에 아직없는 MSSQL (Reporting Services, Analysis Services) 및 Oracle (Data Warehousing, RAC)의 RDBMS 계층 위에 수많은 통합 도구와 서비스가 있다는 것입니다.
MySQL은 무료가 아닙니다!
무료로 널리 알려져 있지만 MySQL이 포함 된 소프트웨어 패키지를 판매하거나 배포하는 경우 다소 심각한 제한이 따릅니다. 이러한 경우 오픈 소스 프로젝트 또는 비영리 단체에만 무료입니다. 데이터베이스와 드라이버를 나머지 애플리케이션과 완전히 분리하고 고객이 스스로 MySQL을 다운로드하여 설치하도록 할 수 있다면 괜찮을 것입니다.
그렇지 않으면 "표준"버전의 경우 연간 $ 2,000의 비용이 들며 이는 SQL Server 라이선스 비용과 거의 비슷합니다.
둘 다 매우 좋은 데이터베이스이지만 SQL Server의 장점은 다음과 같습니다.
많은 사람들이 이데올로기 적으로 Microsoft 도구를 사용하거나 Windows 환경에 갇혀있는 것을 반대하고 있으며 저는이를 이해할 수 있습니다. 그러나 MySQL은 비즈니스 용도로 무료가 아니며 널리 이해되지 않는 것 같습니다.
MySQL의 라이센스 정책을 검토하려면 웹 사이트 http://www.mysql.com/about/legal/licensing/index.html 에서 살펴보십시오 .
오라클이 mysql을 통해 가지고있는 다른 것들.
다른 벤더의 RDBS를 관리하기 전까지 Oracle은 "독자는 작성자를 차단하지 않고 작성자는 독자를 차단하지 않습니다."라는 말을 자주 반복하지 않았습니다. 저는 Oracle DBA로서 8 년 동안 잠금 문제를 처리하는 방법에 대해 많이 알지 못했습니다. 2 Informix 및 3 또는 SQL Server의 수년 동안 잠금에 대해 많이 알고 있습니다.
따라서 지원 및 비 RDBMS 기능에 대한 의견 외에도 잠금 동작을 추가합니다.
Oracle 테이블 클러스터 및 단일 테이블 해시 클러스터 (SQL Server에서도 찾을 수 없음).
참고 : Oracle에 대해 말할 수 없으므로 SQL Server에 대해서만 대답하겠습니다.
물론 MERGE 문, BULK INSERT, GROUPING SET 등과 같은 데이터베이스 엔진의 사소한 차이점입니다.
그러나 더 큰 부분은 Integration Services, Analysis Services 및 Reporting Services와 같은 것입니다. 제 생각에 그것들은 비용 대비 절대적으로 가치가있는 중요한 기술입니다.
MySQL은 Oracle과 MSSQL이 제공하는 더 풍부한 프로그래밍 환경을 제공하지 않았습니다. 특히 저장 프로 시저가 없었던 초기 버전에서는 더욱 그렇습니다. 내 관점에서 나는 DAO 또는 ORM 매퍼 등을 통해 대부분의 비즈니스 로직을 애플리케이션에 넣는 경향이 있습니다. 따라서 데이터베이스 엔진은 덜 중요하며 이론적으로 애플리케이션은 전송 가능합니다. 관리 관점에서 MSSQL은 데이터베이스 소유 작업을 훨씬 쉽게 만들어주는 많은 이점 (이미 나열되어 있음)을 제공합니다. Microsoft는 또한 개발을 위해 훌륭하고 가벼운 SQLExpress를 제공합니다.이 SQLExpress는 작업하기 쉬웠으며 Visual Studio에 잘 통합됩니다.
ThinkJet의 답변에서 영감을 얻은 또 다른 요소는 "보다 성능이 뛰어난 응용 프로그램을 더 빠르고 저렴하게 개발하기 위해 데이터베이스 독립성을 어느 정도 포기할 의향이 있습니까?"라고 생각합니다. 회사가 강조하는 것이 모든 코드가 데이터베이스간에 이식 가능해야한다는 것이라면 가장 단순한 RDBMS 이외의 다른 것을 사용하는 데는 별 의미가 없으며 Oracle과 Microsoft가 제공 한 개선 사항과 이점은 아무 의미가 없습니다.
진정한 데이터베이스 독립성을 깨는 데는 거의 걸리지 않으며, 제 철학은 SQL 향상, PL / SQL 등과 같은 비용을 지불 한 모든 기능을 활용하는 데 전념해야한다는 것입니다.
물론 다른 것들은 다를 수 있습니다.
이 질문은 SQL Server / Oracle이 비용을 청구 할 수있는 개발 기능이라는 암시 적 가정이 있다고 생각합니다. 나는 그것이 더 많은 구현 / 지원이라고 생각합니다.
핫 백업은 적어도 대부분의 설치에서 비용을 지불 할 가치가있는 주요 기능입니다.
Oracle의 경우 가장 큰 부가가치는 RAC입니다. 복잡한 복제없이 동일한 데이터 (즉, 동일한 디스크)를 처리하는 여러 서버가 있습니다. (일반적으로) 개발자에게는 분명하지 않습니다.
내가 정말 좋아하는 일부 Oracle 기능은
내가 아는 한, 이들 중 어느 것도 MySQL에서 사용할 수 없습니다. 특히 엔터프라이즈 에디션과 옵션에는 더 많은 유용한 기능이 있습니다.