최근에는 누구나 이런 느낌을 가질 수 있습니다. 프로그래밍 언어 시장과 달리 데이터베이스 시장의 경쟁은 극도로 치열합니다. 1위 기업은 정체되거나 심지어 쇠퇴하고 있는 반면, 2위 기업은 추월하고 있습니다. 인기 목록의 가장 큰 형제인 MySQL이 점차 전문 개발자의 시야에서 사라지고 있다는 징후는 다양합니다. MySQL이여, 이제 더 이상 단지 선정적인 밈이 아닐 수도 있습니다!
8월 StackOverflow가 발표한 2022년 개발자 설문조사 보고서에는 다음과 같은 수치가 포함되어 있습니다.
전문 개발자 중 인기 순위에서 PostgreSQL(46.48%)이 처음으로 MySQL(45.68%)을 넘어섰습니다. 전문 개발자는 Redis, PostgreSQL, Microsoft SQL Server 및 Elasticsearch를 선택할 가능성이 더 높다는 점에서 초보자와 다릅니다.
초보자 중에서는 MySQL이 낙관적이지 않았고 MongoDB가 거의 1/3을 차지하며 2위를 차지했습니다. "이것은 수많은 언어와 애플리케이션 개발 플랫폼을 지원하기 때문에 의미가 있습니다."
MySQL을 사용하는 개발자도 작업에 다른 데이터베이스를 사용하는 것을 고려, 희망 또는 원하고 있다는 점은 언급할 가치가 있습니다. 아래 그림.
출처: StackOverflow
PostgreSQL을 사용하고 싶은 MySQL 개발자는 11,185명이고, MongoDB를 사용하고 싶은 MySQL 개발자는 9,520명입니다.
StackOverflow 보고서뿐만 아니라 최근 10월 DB-Engines 동향을 보면 MySQL의 인기가 수년 연속 하락세를 보이고 있음을 알 수 있습니다.
사진출처 : DB-Engines
아무 일도 일어나지 않으면 오픈소스 관계형 데이터베이스이기도 한 PostgreSQL이 MySQL을 능가하는 것은 시간문제라고 판단할 수 있습니다.
1.MySQL이 침체되고 있다
인터넷 폭발 시대, "왕"으로서 MySQL의 영광의 왕관이 등극했습니다. 지난 20년 동안 규모와 효율성은 암묵적으로 인터넷 확장의 "필수"가 되었습니다.
개발 및 반복 후 데이터베이스는 단순히 저장소로 사용되며 컴퓨팅 작업은 비즈니스 서버에 넘겨집니다. 이러한 종류의 논리적 배포는 구현하기 더 편리합니다. 기업과 엔지니어들은 "Linux+Apache+MySQL+PHP"를 인정했고, "LAMP"는 자연스럽게 인터넷 개발의 벤치마크 모델이 되었습니다.
그때 막 탄생한 MySQL은 적절한 시기에 "미니멀리스트" 인터넷을 위해 심플한 스타일로 탄생했습니다. 기능적인 측면에서 볼 때 MySQL은 다른 데이터베이스에 비해 압도적이지는 않지만 많은 고급 기능을 제공하지 않기 때문에 사용이 간편하고 오픈 소스이며 무료인 MySQL이 Tencent를 비롯한 국내 인터넷 기업의 호감을 얻었습니다. 나중에 거대 기업이 된 Alibaba는 초기 인터넷 OLTP 분야의 사실상의 표준이 되었습니다. 이에 비해 항상 "학술적" 경로를 따라온 PostgreSQL은 미온적이었습니다.
2009년은 MySQL이 운명의 전환점을 맞이한 해였습니다. 오라클은 방금 MySQL을 인수한 SUN으로 전환했습니다. MySQL의 부상에 직면한 오라클은 이번 움직임이 대규모 상용 데이터베이스인 오라클의 해자를 보호하기 위한 인수 전략을 채택하기 위한 것이라고 말해야 합니다. 그 후 오라클은 MySQL 상용 버전의 가격을 대폭 인상하는 가격 인상 루틴을 시작했습니다.
MySQL 무료 버전을 사용하는 개발자들처럼 MySQL 창립자 Monty도 MySQL의 미래를 걱정하지만 할 수 있는 일은 없습니다.
10년이 지난 후에도 Monty는 여전히 이 문제에 대해 우려하고 있으며 MariaDB가 가장 좋은 증거입니다.
돌아보면 MySQL의 부상과 인기는 시대적 맥락과 결코 떼어놓을 수 없습니다. Monty가 말했듯이:
MySQL의 성공은 시대적 배경과 불가분의 관계에 있습니다. 당시에는 인터넷이 널리 인식되었고, 이를 사용하여 인터넷에 필요한 데이터를 생성하려면 모든 사람이 이러한 데이터베이스가 필요했습니다. 당시에는 기술 대기업들이 인터넷에 대해 관망하는 태도를 취했기 때문에 아직까지 발전하지 못한 블루오션 시장이었습니다.
2. 침체의 뒷편
푸른 바다가 붉게 변할 때, 인터넷을 위해 탄생한 MySQL은 침체의 순간을 맞이한 것 같습니다. 비록 그 인기가 줄어들지는 않았지만, 요즘의 관계형 데이터베이스 경쟁자인 PostgreSQL의 인기가 대세를 거스르고 있는 것에 비하면 걱정할 수준은 아니다.
자세히 살펴보면 아마도 여러 가지 이유가 있을 것입니다.
우선 인수 후 MySQL의 오픈 소스 영적 핵심이 크게 감소했습니다. 획득한 '포스트아들'로 축소되는 것은 필연적으로 주변적인 역할이 될 것입니다.
몬티의 회상에 따르면, “오라클이 Sun과 MySQL을 인수하겠다고 발표했을 때, 나는 그들이 MySQL의 귀중한 유산을 진정으로 탐구할 것이라고 믿지 않았습니다. 그래서 많은 뛰어난 프로그래머들이 Sun과 MySQL의 정신을 이어가기 위해 우리와 함께 떠나기로 결정했습니다. MySQL.”
그와 동시에 MySQL 때문에 오라클에 입사한 뛰어난 직원들도 충분한 자원과 관심을 받지 못하고 있습니다.
지난해 12월, 오라클의 수석 소프트웨어 엔지니어이자 MySQL 옵티마이저 팀의 일원이었던 스테이나 건더슨(Steinar Gunderson)이 사임했습니다. 우리 팀과 나는 다른 사람들이 변경한 내용으로 MySQL 옵티마이저가 약간의 수정을 거쳐 2000년대 초반 디자인으로 옮겨졌지만 그게 끝이었습니다." 회사가 아무리 자랑해도 Gunderson은 그럴 수 없었습니다. MySQL이 경쟁력 있는 제품으로 변할 것이라고 믿습니다.
아마도 Oracle MySQL 최적화 팀 구성원들에게는 상상의 여지가 없다는 것이 말로 표현할 수 없는 고통일 것입니다. 물론 Oracle도 MySQL에 에너지를 투자했지만 Microsoft Oracle Cloud와 같은 패치워크 "운영"과 온라인 분석 및 처리 기능은 진정한 오픈 소스 데이터베이스 기여자의 이상과는 거리가 멀습니다.
간단히 말하면 Oracle의 MySQL 인수로 인해 연구 개발이 중단되지는 않았지만 개발 커뮤니티의 열정이 크게 꺾였습니다.
둘째, 데이터베이스 개발의 맥락이 바뀌었고 MySQL의 하이라이트 창이 실제로 끝나게 될 수도 있습니다. 앞에서도 말했듯이 당시 새로운 네트워크를 위해 MySQL이 탄생했고, 주요 웹사이트와 모바일 단말의 발전도 극복할 수 없는 지점에 이르렀다. 오늘날 우리는 산업 발전이 금융, 통신, 사물 인터넷, 소매, 제조와 같은 전통적인 산업으로 기울어지기 시작하고 있음을 알 수 있습니다. 표준화. 이것은 MySQL이 잘하는 것이 아닙니다.
또 다른 요점은 전염병 이후 기업 인프라의 현대화 요구 사항이 가속화되어 급변하는 고객 요구에 기업이 더욱 유연하고 대응할 수 있도록 하는 것을 목표로 삼고 있다는 것입니다. 이러한 프로젝트를 수행하는 글로벌 시스템 통합업체는 서비스에 최고의 이익을 제공하기 위해 배포하기 가장 쉬운 기술을 적용하는 경우가 많습니다. 이는 분명히 MySQL이 지불이 필요한 이유이며 MySQL 다중 언어 지원에는 분명히 이유가 있습니다. 그 자체의 병목 현상.
마지막으로, 관계형 데이터베이스에 관한 한 시장도 큰 변화를 겪고 있습니다. 2014년부터 PostgreSQL은 르네상스를 경험했으며 기술 분석가들은 그 이유를 풍부한 기능 세트, 손쉬운 확장, 오픈 소스, 더 나은 오픈 소스 라이선스라는 네 가지 이유로 꼽습니다. 저자에게는 마지막 요점이 매우 중요한 것 같습니다. 더 나은 오픈 소스 라이센스 뒤에 숨은 의미는 엄청납니다. 오픈소스 협업의 규모가 커질수록 모두가 더 많은 혜택을 누릴 수 있습니다. 이는 오픈소스 정신의 핵심이기도 하다.
PostgreSQL은 MIT와 같은 라이센스 계약을 채택하여 개발자가 오픈 소스 또는 비공개 소스 제품의 상업적 사용을 포함하여 무엇이든 할 수 있도록 허용하는 반면 MySQL 클라이언트는 GPL 라이센스 계약을 따르므로 개발자는 Oracle에 비용을 지불하거나 애플리케이션 오픈 소스를 전송해야 합니다. 이러한 관점에서 보면 PostgreSQL은 상업적 용도이든 아니든 가장 유리한 선택입니다.
3. 학문적 길을 택하는 PostgreSQL
MySQL은 다음 혁신이 올 때까지 더 인기를 끌지 못할 것입니다. 그러나 그 전에는 PostgreSQL의 두 번째 부상은 시간 문제였습니다.
MySQL이 출시된 지 14개월도 채 되지 않아 PostgreSQL이 탄생했습니다. PostgreSQL 글로벌 개발 그룹이 개발한 고급 오픈 소스 RDBMS로, 원래 1996년 7월 8일에 출시되었으며 1986년 버클리 캘리포니아 대학교에서 POSTGRES 프로젝트의 일부로 시작되었습니다.
PostgreSQL이 탄생했을 때 개발자들은 "엄격한 설계 개념"을 갖춘 "학문적"으로 간주했습니다. 요즘 대중적인 말을 사용하면: MySQL은 특정 비즈니스 문제를 해결하기 위한 야생 인터넷 솔루션인 반면 PostgreSQL은 "1 대 10"인 "풀 스택 데이터베이스"입니다.
하이퍼 컨버지드 시스템, 성숙하고 잘 설계된 전문적이고 포용적인 커뮤니티로 탄생한 PostgreSQL은 데이터 분석, 시계열 플러그인, 전체 기능을 갖춘 "세계에서 가장 진보한 오픈 소스 관계형 데이터베이스"라고 자신있게 광고합니다. 텍스트 검색, 아키텍처, 기능 등 모든면에서 훌륭합니다.
이전에는 오픈소스 열풍, 산업 발전, 상업적 활용의 관점에서 MySQL의 침체 원인을 분석했습니다. 다음은 개발자 관점에서 PostgreSQL의 이점 중 일부를 구체적으로 나열한 것입니다.
지리 공간 데이터 지원, 읽기 잠금 없는 동시성 등을 포함하여 상용 솔루션에 사용할 수 있는 다양한 성능 최적화를 지원하며 널리 사용됩니다.
복잡한 쿼리를 수행해야 하는 시스템에 가장 유용합니다.
비즈니스 인텔리전스 애플리케이션에서 잘 작동하며 빠른 읽기/쓰기 속도가 필요한 데이터 분석 및 데이터 웨어하우스 애플리케이션에 더 적합합니다. 따라서 OLTP/OLAP 시스템에도 적합합니다.
단일 제품에 구조화된 데이터 유형과 구조화되지 않은 데이터 유형을 저장할 수 있으며 JSON 지원과 같은 대부분의 데이터 유형을 지원합니다. 지난 수년간 PostgreSQL의 가장 큰 혁신 중 하나는 PostgreSQL 9.2에 JSON 데이터를 생성하는 기능이 도입된 것입니다.
강력한 기능이 인기의 이유는 아닐 수도 있습니다. 하지만 개발자의 선호도가 변한 것은 사실입니다.
예를 들어, 소프트웨어 개발자 중심의 산업 분석 회사인 Redmonk의 분석가인 James Governor는 "현재 개발자들은 NoSQL 및 빅데이터 피로감을 어느 정도 겪고 있다"고 언급했습니다. 따라서 개발자들은 검증된 PostgreSQL을 MongoDB 및 Apache Cassandra A로 사용하기 시작했습니다. 일부 중요한 워크로드에 대한 실행 가능한 대안입니다.
또한 클라우드 컴퓨팅 회사인 Joyent의 솔루션 엔지니어링 이사인 Elijah Zupancic도 문서화의 중요성을 언급하면서 “PostgreSQL은 개발자들의 관점에서도 사용하는 것이 즐겁고 문서화는 매우 훌륭하다고 인정했습니다. , 데이터 유형은 개발자가 수행하는 작업 유형을 반영합니다.”
PostgreSQL은 단일 공급업체에 의존하지 않습니다. 단일 상용 공급업체는 문서 업데이트와 같은 수준에서 오픈 소스 프로젝트가 제공할 수 있는 변화의 속도를 결코 따라잡을 수 없습니다.
4. 간단하고 쉽게 모든 것을 압도한다
MySQL의 발전을 되돌아보면 MySQL은 인터넷 때문에 탄생했고 인터넷을 가능하게 하기도 했다. 그 시대에는 '단순함'과 '쉬움'이 압도적이었습니다. 기술은 빠르게 변화하고 있지만 그 이면의 논리는 오늘날에도 여전히 적용 가능합니다.
PostgreSQL은 최선의 선택은 아닐 수도 있지만 비즈니스 의사 결정자에게는 가장 편리하고 쉬운 선택입니다. 기업 내의 많은 사람들이 관계형 데이터베이스에 익숙하며, PostgreSQL은 값비싼 상용 데이터베이스를 포기하려는 관리자에게 "쉬운 버튼"입니다.
EDB CEO인 Ed Boyajian이 언급했듯이 대부분의 기업은 업그레이드와 변경을 원하지 않지만 PostgreSQL을 그린필드로 사용하고 있습니다. 이미 Oracle, SQL Server 및 DB2를 사용하여 개발한 사내 SQL/관계형 기술이 축적되어 있기 때문입니다. 수십 년에 걸쳐.
5. 안녕, MySQL!
최종 분석에서 MySQL은 사용하기 쉽기 때문에 인터넷 구축이라는 임무를 완수했으며, 새로운 기업 개발 제안을 제시했습니다. 여기에는 "인프라 업그레이드"가 포함됩니다. "클라우드로의 이동", "사물인터넷으로의 이동" 등 여러 하위 제안에서 MySQL의 단점이 부각되고 있습니다. 이는 MySQL이 쉽게 처리할 수 있는 영역이 아닙니다. 통합자이든 개발자이든, 더 성숙하고 엄격하며 잘 설계되고 성공하기 쉬운 PostgreSQL을 선택해야 하는 이유를 이해하는 것은 어렵지 않습니다.
사진 출처: StackOverflow
지난 20년 가까이 MySQL은 인터넷 구축의 초석 중 하나가 되었습니다. 수많은 개발자가 이를 위해 밤낮으로 노력했으며 우리는 MySQL에 합당한 영광을 안겨주었습니다. 요즘 개발자들은 MySQL의 문제에 직면해야 합니다. MySQL은 오랫동안 경험의 정점을 지났지만 정체되거나 심지어 쇠퇴하는 느낌에 직면해 있습니다.
데이터베이스의 미래는 무엇인가요? 더욱 안정적이고 역동적입니다. 몬티는 그렇게 말했다.
앞으로 기업과 개발자는 안정적이고 역동적인 새로운 요구 사항에 직면하고 있으며 어느 시점에서는 한때 농담이었지만 이제는 약간의 한숨을 내쉬어야 합니다. 예언" ——안녕, MySQL!