MySQL

다중 스레드, 다중 사용자, 구조질의어(SQL) 형식의 데이터베이스 관리 시스템(DBMS)

MySQL(마이에스큐엘, /m ˌɛskjuːˈɛl/)[2]은 세계에서 가장 많이 쓰이는[3] 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다.[4] 다중 스레드, 다중 사용자, 구조질의어 형식의 데이터베이스 관리 시스템으로 오라클이 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용된다. 하나의 옵션은 GPL이며, GPL 이외의 라이선스로 적용시키려는 경우 전통적인 지적재산권 라이선스의 적용을 받는다.

MySQL
개발자MySQL AB
발표일1995년 5월 23일
안정화 버전
8.3.0[1] 위키데이터에서 편집하기 / 2024년 1월 16일(58일 전)(2024년 1월 16일)
저장소
프로그래밍 언어C, C++
운영 체제크로스 플랫폼
플랫폼윈도우, 리눅스, 솔라리스
언어영어
종류관계형 데이터베이스 관리 시스템
라이선스GPL, FOSS
웹사이트MySQL

위와 같은 지원 방식은 자유 소프트웨어 재단이 프로젝트에 저작권을 적용하는 방법과 비슷한 JBoss의 모델과 유사하다. 그러나 기반코드가 개인의 소유자에게 저작권이 있고 커뮤니티에 의해 개발되는 아파치 프로젝트와는 다르다.

MySQL AB는 또한 MaxDB라고 불리는 MySQL AB와는 기반코드가 다른 데이터베이스 관리 시스템을 판매했으나 2007년 이래로 MaxDB는 SAP AG가 소유하고 있다.[5]

썬 마이크로시스템즈에 10억 달러에 인수되었으나, 썬 마이크로시스템즈오라클에 인수되며 같이 넘어갔다.[6]

인터페이스 편집

 
윈도에서 작동하는 MySQL 워크벤치

MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터베이스를 관리하거나 자료를 관리하기 위한 GUI 관리툴은 내장되어 있지 않다.[7][8] 따라서 이용자들은 명령 줄 인터페이스 도구들을 이용하거나 또는 데이터베이스를 만들고, 관리하고, 데이터를 백업하는데, 상태를 검사하고, 데이터베이스 구조를 생성하는데, 또는 데이터 레코더를 작성하는데 있어서 MySQL 프론트엔드 데스크톱 소프트웨어나 웹 애플리케이션을 사용해야 한다.[9][10][11][12] 공식적인 MySQL 프론트엔드 툴인 MySQL 워크벤치오라클에 의해 개발되었으며, 자유롭게 사용할 수 있다.[13]

그래픽 편집

공식 툴인 MySQL 워크벤치는 사용자에게 MySQL 데이터베이스 관리를 그래픽적으로 지원하게 하며, 데이터베이스 구조의 설계도 시각적으로 하게 해주는 MySQL AB에 의해 개발된 자유로운 집적 환경을 가지고 있다. 이것은 이전의 패키지 소프트웨어였던 MySQL GUI 툴즈를 대체하였다. 여타의 제3자 패키지와 유사하지만, MySQL 현장에서 신뢰할 수 있는 툴로 여겨지고 있으며, 이것은 이용자가 데이터베이스를 설계하고, 모델링, SQL 관리(MySQL 쿼리 브라우저 대체) 그리고 데이터베이스 관리(MySQL Administrator 대체)까지할 수 있도록 지원한다.

MySQL 워크벤치는 2가지 판이 존재하는데, MySQL 홈페이지에서 다운받을 수 있는 보통의 자유, 공개 소스인 ‘커뮤니티 판’(Community Edition)과 커뮤니티 판을 확장하여 개선시킨 유료의 ‘스탠더드 판’(Standard Edition)이 존재한다.

프로그래밍 언어 편집

응용 프로그램에서 MySQL 데이터베이스에 접근하기 위해 다수의 프로그래밍 언어로 된 API를 사용할 수 있다. 이들 API는 언어에 종속적이다.

MySQL은 공식적으로 아래의 프로그래밍 언어를 지원한다.

MySQL은 MyODBC라고 불리는 ODBC 인터페이스를 지원해서 다른 프로그래밍 언어를 지원한다. 그 예로 ASP콜드퓨전을 들 수 있다. MySQL은 대부분 ANSI C로 구현되었다.

사용 편집

MySQL은 미디어위키드루팔과 같은 인기있는 웹 애플리케이션에 사용된다. 그리고 LAMP, MAMP, WAMP (리눅스/매킨토시/윈도-아파치-MySQL-PHP/펄/파이썬) 플랫폼의 데이터베이스 구성체로서 작동하며 버그질라와 같은 오픈소스 버그 추적 도구에도 사용된다.

웹 애플리케이션으로서의 MySQL의 인기는 PHP의 인기도와 맞물려 있다. PHP는 종종 MySQL과 결합되며, 다이내믹 듀오(Dynamic Duo)라는 별칭이 붙었다. 인터넷 상의 여러 웹사이트, 혹은 서적을 통해서 MySQL과 PHP의 연동에 대한 정보를 쉽게 찾을 수 있다. 최근의 플랫폼에서는 이들의 연동을 자동으로 해 주는 경우가 있다.

또한 SUN 인수 이후, 중소기업이나 개인용 사이트뿐만 아니라 대기업에서도 점차 관심을 보이고 있다. 위키백과[14], 구글(검색 엔진은 제외)[15][16], 페이스북[17][18][19], 트위터[20], 플리커[21], 노키아닷컴[22], 유튜브[23] 등에서 사용하고 있다.

버전 편집

출시 GA(General availability) 최신 마이너 버전 최신 릴리스 수명 종료[24]
오래된 버전, 지원 중단: 5.1 2008년 11월 14일(15년 전)(2008-11-14)[25] 5.1.73[26] 2013-12-03 Dec 2013
오래된 버전, 지원 중단: 5.5 2010년 12월 3일(13년 전)(2010-12-03)[27] 5.5.62[28] 2018-10-22 Dec 2018
오래된 버전, 지원 중단: 5.6 2013년 2월 5일(11년 전)(2013-02-05)[29] 5.6.51[30] 2021-01-20 Feb 2021
오래된 버전, 지원 중: 5.7 2015년 10월 21일(8년 전)(2015-10-21)[31] 5.7.41[32] 2023-01-17 Oct 2023
현재 안정화 버전: 8.0 2018년 4월 19일(5년 전)(2018-04-19)[33] 8.0.32[34] 2023-01-17 Apr 2026
범례:
오래된 버전
오래된 버전, 지원 중
최신 버전
최신 미리보기 버전
배포 예정

[35][36][37][38][39][40][41]

역사 편집

버전 별 두드러진 특징은 다음과 같다.

  • 1994년 MySQL의 원 개발(마이클 위데니우스와 데이빗 액스마크에 의한)[42]
  • 1995년 5월 최초의 국제화판
  • 3.19 판: 1996년 말, www.tcx.se에서
  • 3.20 판: 1997년 1월
  • 1998년 1월 8일 윈도 판(Windows 95와 NT) 출시
  • 3.21 판: 제품 출시 1998년 www.mysql.com 에서
  • 3.22 판: 1998년부터 알파, 베타판
  • 3.23 판: 2000년 7월 베타판으로부터, 2001년 1월 22일 제품 출시[43]
  • 4.0 판: 2002년 8월 베타판으로부터, 2003년 3월 제품 출시(unions)
  • 4.01 판: 2003년 8월 베타판으로부터, Jyoti 데이터베이스 트래킹용으로 MySQL 채택
  • 4.1 판: 2004년 6월 베타판으로부터, 2004년 10월 제품 출시 (R 트리B 트리, 서브쿼리, prepared statements 지원)
  • 5.0 판: 2005년 3월 베타판, 2005년 10월 제품 출시(커서, 저장 프로시저, 트리거, , XA 트랜잭션 지원)
페더레이티드 스토리지 엔진의 개발자는 다음과 같은 말을 했다. "Federated 스토리지 엔진은 proof-of-concept 스토리지 엔진이지만",[44] 주요 MySQL 5.0 판에 포함되어 기본값으로 활성화되어 있다. "MySQL Federated 테이블에 일부 단점들을 정리한 문서 : The Missing Manual".[45]
5.1 판에는 5.0에 있던 35개의 현재의 버그 외에 20개의 알려진 크래싱, 그리고 잘못된 결과 버그를 포함하고 있다. (5.1.51판에는 거의 모두 픽스함).[47]
MySQL 5.1과 6.0은 데이터 웨어하우징으로 사용할 때는 빈약한 성능을 보인다.  — 부분적으로 단일 쿼리를 진행할 때 다중 CPU 코어를 사용할 수 없기 때문에[48]
  • 오라클이 2010년 1월 27일 썬마이크로시스템즈를 인수했다.[49]
  • MySQL 서버 5.5는 현재 널리 사용가능하다(2010년 12월 기준). 다음과 같은 성능 향상과 특징을 가지고 있다:
    • 기본 스토리지 엔진이 InnoDB이며, 이것은 트랜잭션과 참조 무결성 제한을 지원한다.
    • 개선된 InnoDB I/O 서브시스템[50]
    • 향상된 SMP 지원[51]
    • Semisynchronous 복제.
    • SQL 표준에 대응한 SIGNAL 과 RESIGNAL 구문.
    • 유니코드 문자셋 utf16, utf32, 그리고 utf8mb4 지원.
    • 사용자 정의 파티셔닝에 대한 새로운 옵션.

MySQL 서버 6.0.11-알파가 6.0 라인의 최신 판으로 2009년 5월 22일 발표되었다.[52] 이후의 MySQL 서버 개발은 새로운 릴리스 모델을 사용할 것이다. 6.0은 미리 출시판으로 통합될 것이다.

MySQL 5.6은 새로운 출시판의 시금석이 될 예정으로 2011년 MySQL 이용자 컨퍼런스에서 소개되었다. 새로운 특징으로 쿼리 옵티마이저에 대한 성능 향상과 InnoDB의 고성능 트랜잰션 결과, 새로운 NoSQL-스타일 메모리 캐시된 API, 대용량 테이블의 조작과 퀘리를 위한 파티셔닝의 성능 향상, 복제와 성능 모니터링 개선을 PERFORMANCE_SCHEMA를 통해 데이터 확장으로 나은 성능을 보여줄 수 있게 되었다.[53]

같이 보기 편집

각주 편집

  1. “Changes in MySQL 8.3.0 (2024-01-16, Innovation Release)”. 2024년 1월 16일. 2024년 1월 16일에 확인함. 
  2. “What is MySQL?”. 《MySQL 5.1 Reference Manual》. Oracle. 2012년 9월 17일에 확인함. The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”) 
  3. “Market Share”. 《Why MySQL?》. Oracle. 2013년 3월 1일에 원본 문서에서 보존된 문서. 2012년 9월 17일에 확인함. 
  4. Schumacher, Robin; Lentz, Arjen. “Dispelling the Myths”. MySQL AB. 2011년 6월 6일에 원본 문서에서 보존된 문서. 2012년 9월 17일에 확인함. 
  5. MySQL loses joint custody of SAP database
  6. 썬 마이크로시스템즈의 인수에 관한 기사
  7. mysql — The MySQL Command-Line Tool, MySQL Reference Manual
  8. mysqladmin - the MySQL command-line tool, MySQL Reference Manual
  9. MySQL Client Programs, MySQL Reference Manual
  10. MySQL Tools Family, SQLMaestro Group
  11. MySQL GUI Tools Archived 2008년 5월 11일 - 웨이백 머신, WebYog
  12. HeidiSQL, HeidiSQL MySQL GUI
  13. MySQL Workbench, MySQL Downloads
  14. “Wikimedia servers — System architecture”. 《Wikimedia Meta-Wiki》. Wikimedia Foundation. 2012년 9월 17일에 확인함. 
  15. Urlocker, M. Zack (2005년 12월 13일). “Google Runs MySQL”. 《The Open Force》. M. Zack Urlocker. 2010년 8월 3일에 확인함. AdWords was built using the MySQL database 
  16. Claburn, Thomas (2007년 4월 24일). “Google Releases Improved MySQL Code”. 《InformationWeek》 (CPM Media). 2012년 11월 16일에 원본 문서에서 보존된 문서. 2008년 11월 30일에 확인함. 
  17. Callaghan, Mark (2010년 4월 13일). 《MySQL at Facebook》. 《YouTube》 (Google). 2010년 8월 3일에 확인함. x,000 servers, ... Master-slave replication, InnoDB 
  18. Sobel, Jason (2007년 12월 21일). “Keeping Up”. 《The Facebook Blog》. Facebook. 2008년 10월 30일에 확인함. 
  19. Malik, Om (2008년 4월 25일). “Facebook’s Insatiable Hunger for Hardware”. 《GigaOM》. GigaOmniMedia. 2008년 10월 2일에 원본 문서에서 보존된 문서. 2008년 10월 30일에 확인함. 
  20. Cole, Jeremy (2011년 4월 14일). 《Big and Small Data at @Twitter》. 《YouTube》 (Google). 2011년 10월 20일에 확인함. 
  21. “MySQL Customer: Flickr”. 《MySQL Customers》. Oracle. 2012년 9월 17일에 확인함. 
  22. “MySQL Customer: Nokia”. 《MySQL Customers》. Oracle. 2012년 2월 1일에 확인함. 
  23. “MySQL Customer: YouTube”. 《MySQL Customers》. Oracle. 2012년 9월 17일에 확인함. 
  24. “Oracle Lifetime Support Policy” (PDF). 2019년 10월 10일에 확인함. 
  25. “A.1 MySQL 5.1 FAQ: General”. 《docs.oracle.com》. 2023년 2월 9일에 원본 문서에서 보존된 문서. 2017년 8월 2일에 확인함. 
  26. “2 Changes in MySQL 5.1.73 (2013-12-03)”. 《docs.oracle.com》. 2020년 11월 30일에 원본 문서에서 보존된 문서. 2020년 4월 28일에 확인함. 
  27. “MySQL: MySQL 5.5 Release Notes”. 《dev.mysql.com》. 2018년 1월 15일에 확인함. 
  28. “2 Changes in MySQL 5.5.62 (2018-10-22, General availability)”. 《docs.oracle.com》. 2020년 11월 30일에 원본 문서에서 보존된 문서. 2020년 4월 28일에 확인함. 
  29. “MySQL: MySQL 5.6 Release Notes”. 《dev.mysql.com》. 2018년 1월 15일에 확인함. 
  30. “MySQL :: MySQL 5.6 Release Notes :: Changes in MySQL 5.6.51 (2021-01-20, General Availability)”. 《dev.mysql.com》. 2021년 1월 20일에 원본 문서에서 보존된 문서. 2021년 3월 4일에 확인함. 
  31. “MySQL: MySQL 5.7 Release Notes”. 《dev.mysql.com》. 2018년 1월 15일에 확인함. 
  32. “Changes in MySQL 5.7.41 (2023-01-17, General Availability)”. 《dev.mysql.com》. 2023년 3월 9일에 확인함. 
  33. Hoydalsvik, Geir (2018년 4월 19일). “What's New in MySQL 8.0? (Generally Available)”. 2021년 8월 26일에 원본 문서에서 보존된 문서. 2019년 10월 10일에 확인함. 
  34. “MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.32 (2023-01-17, General Availability)”. 《dev.mysql.com》. 2023년 3월 2일에 확인함. 
  35. “B.3. Changes in Release 3.23.x (Lifecycle Support Ended)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  36. “B.2. Changes in Release 4.0.x (Lifecycle Support Ended)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  37. “B.1. Changes in Release 4.1.x (Lifecycle Support Ended)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  38. “C.1. Changes in Release 5.0.x (Lifecycle Support Ended)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  39. “C.1. Changes in Release 5.1.x (Production)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  40. “C.1. Changes in Release 5.5.x (Production)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  41. “C.1. Changes in Release 5.6.x (Development)”. Oracle. 2013년 4월 4일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함. 
  42. “Five Questions With Michael Widenius - Founder And Original Developer of MySQL”. w3resource.com. 2012년 10월 13일에 확인함. 
  43. “MySQL 3.23 Declared Stable”. 2001년 8월 15일에 원본 문서에서 보존된 문서. 2012년 2월 10일에 확인함. 
  44. “Capttofu: FederatedX Pluggable Storage Engine Released!”. Capttofu.livejournal.com. 2011년 8월 13일에 원본 문서에서 보존된 문서. 2009년 4월 3일에 확인함. 
  45. “Oreillynet.com”. Oreillynet.com. 2008년 10월 9일. 2012년 2월 1일에 확인함. 
  46. “Sun Picks Up MySQL For $1 Billion; Open Source Is A Legitimate Business Model”. 2012년 10월 13일에 확인함. 
  47. “Archives - Oops, we did it again (MySQL 5.1 released as GA with crashing bugs)”. Planet MySQL. 2008년 11월 29일. 2008년 12월 30일에 원본 문서에서 보존된 문서. 2013년 2월 5일에 확인함. 
  48. “TPC-H Run on MySQL 5.1 and 6.0 | MySQL Performance Blog”. MySQL Performance Blog. 2009년 6월 8일에 확인함. 
  49. “Oracle.com”. Oracle.com. 2010년 9월 7일. 2012년 2월 1일에 확인함. 
  50. “dev.mysql.com”. dev.mysql.com. 2012년 2월 10일에 원본 문서에서 보존된 문서. 2012년 2월 1일에 확인함. 
  51. “dev.mysql.com”. dev.mysql.com. 2012년 2월 10일에 원본 문서에서 보존된 문서. 2012년 2월 1일에 확인함. 
  52. “MySQL Lists: packagers: MySQL 6.0.11 Alpha has been released!”. Lists.mysql.com. 2012년 2월 1일에 확인함. 
  53. “What's New in MySQL 5.6”. MySQL Developer Zone. 2011년 4월 23일에 원본 문서에서 보존된 문서. 2011년 4월 21일에 확인함. 

외부 링크 편집