MySQL

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
MySQL
MySQL Conference 2005 Birthday Cake.jpg
개발자 MySQL AB
발표일 1995년 5월 23일
안정화 버전 5.6.16
(2014년 01월 31일, 76일 경과)
미리보기 버전 5.7.3
(2013년 12월 03일, 135일 경과)
프로그래밍 언어 C, C++
운영 체제 크로스 플랫폼
플랫폼 윈도, 리눅스, 솔라리스
언어 영어
종류 관계형 데이터베이스 관리 시스템
라이선스 GPL, FOSS
웹사이트 MySQL

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

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

MySQL AB는 MySQL 라이선스에 의한 판매 지원 및 서비스 계약 시스템을 개발, 유지한다. 그리고 또한 인터넷을 통한 전 세계의 협력자들을 고용한다. MySQL AB는 David Axmark, Allan Larsson 그리고 Michael "Monty" Widenius에 의해 설립되었다.

MySQL AB는 또한 MaxDB라고 불리는 MySQL AB와는 기반코드가 다른 데이터베이스 관리 시스템을 판매하고 있다.

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

인터페이스[편집]

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

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

그래픽[편집]

공식 툴인 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 (리눅스/매킨토시/윈도-Apache-MySQL-PHP/Perl/Python) 플랫폼의 데이터베이스 구성체로서 작동하며 버그질라와 같은 오픈소스 버그 추적 도구에도 사용된다.

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

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

버전[편집]

[22][23][24][25][26][27][28]

역사[편집]

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

  • 1994년 MySQL의 원 개발(마이클 위데니우스와 데이빗 액스마크에 의한) [29]
  • 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일 제품 출시[30]
  • 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 스토리지 엔진이지만",[31] 주요 MySQL 5.0 판에 포함되어 기본값으로 활성화되어 있다. "MySQL Federated 테이블에 일부 단점들을 정리한 문서 : The Missing Manual".[32]
5.1 판에는 5.0에 있던 35개의 현재의 버그 외에 20개의 알려진 크래싱, 그리고 잘못된 결과 버그를 포함하고 있다. (5.1.51판에는 거의 모두 픽스함).[34]
MySQL 5.1과 6.0은 데이터 웨어하우징으로 사용할 때는 빈약한 성능을 보인다.  — 부분적으로 단일 쿼리를 진행할 때 다중 CPU 코어를 사용할 수 없기 때문에[35]
  • 오라클이 2010년 1월 27일 썬마이크로시스템즈를 인수했다.[36]
  • MySQL 서버 5.5는 현재 널리 사용가능하다(2010년 12월 기준). 다음과 같은 성능 향상과 특징을 가지고 있다:
    • 기본 스토리지 엔진이 InnoDB이며, 이것은 트랜잭션과 참조 무결성 제한을 지원한다.
    • 개선된 InnoDB I/O 서브시스템[37]
    • 향상된 SMP 지원[38]
    • Semisynchronous 복제.
    • SQL 표준에 대응한 SIGNAL 과 RESIGNAL 구문.
    • 유니코드 문자셋 utf16, utf32, 그리고 utf8mb4 지원.
    • 사용자 정의 파티셔닝에 대한 새로운 옵션.

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

MySQL 5.6은 새로운 출시판의 시금석이 될 예정으로 2011년 MySQL 이용자 컨퍼런스에서 소개되었다. 새로운 특징으로 쿼리 옵티마이저에 대한 성능 향상과 InnoDB의 고성능 트랜잰션 결과, 새로운 NoSQL-스타일 메모리 캐시된 APIs, 대용량 테이블의 조작과 퀘리를 위한 파티셔닝의 성능향상, 복제와 성능 모니터링 개선을 PERFORMANCE_SCHEMA를 통해 데이터 확장으로 나은 성능을 만듦.[40] In July further previews with a BINLOG API, group commit, and InnoDB full text searching were released.-->

같이 보기[편집]

주석[편집]

  1. What is MySQL?. 《MySQL 5.1 Reference Manual》. Oracle. 17 September 2012에 확인. “The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”)”이지만
  2. Market Share. 《Why MySQL?》. Oracle. 17 September 2012에 확인.
  3. Dispelling the Myths. MySQL AB. 6 June 2011에 보존된 문서. 17 September 2012에 확인.
  4. 썬 마이크로시스템즈의 인수에 관한 기사
  5. mysql — The MySQL Command-Line Tool, MySQL Reference Manual
  6. mysqladmin - the MySQL command-line tool, MySQL Reference Manual
  7. MySQL Client Programs, MySQL Reference Manual
  8. MySQL Tools Family, SQLMaestro Group
  9. MySQL GUI Tools, WebYog
  10. HeidiSQL, HeidiSQL MySQL GUI
  11. MySQL Workbench, MySQL Downloads
  12. Wikimedia servers — System architecture. 《Wikimedia Meta-Wiki》. Wikimedia Foundation. 17 September 2012에 확인.
  13. Urlocker, M. Zack (13 December 2005). Google Runs MySQL. 《The Open Force》. M. Zack Urlocker. 3 August 2010에 확인. “AdWords was built using the MySQL database”
  14. Claburn, Thomas, "Google Releases Improved MySQL Code", 《CPM Media》, 24 April 2007 작성. 30 November 2008 확인.
  15. MySQL at Facebook.
  16. Sobel, Jason (21 December 2007). Keeping Up. 《The Facebook Blog》. Facebook. 30 October 2008에 확인.
  17. Malik, Om (25 April 2008). Facebook’s Insatiable Hunger for Hardware. 《GigaOM》. GigaOmniMedia. 30 October 2008에 확인.
  18. Big and Small Data at @Twitter.
  19. MySQL Customer: Flickr. 《MySQL Customers》. Oracle. 17 September 2012에 확인.
  20. MySQL Customer: Nokia. 《MySQL Customers》. Oracle. 1 February 2012에 확인.
  21. MySQL Customer: YouTube. 《MySQL Customers》. Oracle. 17 September 2012에 확인.
  22. B.3. Changes in Release 3.23.x (Lifecycle Support Ended). Oracle. 24 August 2010에 확인.
  23. B.2. Changes in Release 4.0.x (Lifecycle Support Ended). Oracle. 24 August 2010에 확인.
  24. B.1. Changes in Release 4.1.x (Lifecycle Support Ended). Oracle. 24 August 2010에 확인.
  25. C.1. Changes in Release 5.0.x (Lifecycle Support Ended). Oracle. 24 August 2010에 확인.
  26. C.1. Changes in Release 5.1.x (Production). Oracle. 24 August 2010에 확인.
  27. C.1. Changes in Release 5.5.x (Production). Oracle. 24 August 2010에 확인.
  28. C.1. Changes in Release 5.6.x (Development). Oracle. 24 August 2010에 확인.
  29. Five Questions With Michael Widenius - Founder And Original Developer of MySQL. w3resource.com. 13 October 2012에 확인.
  30. MySQL 3.23 Declared Stable. 15 August 2001에 보존된 문서.
  31. Capttofu: FederatedX Pluggable Storage Engine Released!. Capttofu.livejournal.com. 3 April 2009에 확인.
  32. Oreillynet.com. Oreillynet.com (9 October 2008). 1 February 2012에 확인.
  33. Sun Picks Up MySQL For $1 Billion; Open Source Is A Legitimate Business Model. 13 October 2012에 확인.
  34. Archives - Oops, we did it again (MySQL 5.1 released as GA with crashing bugs). Planet MySQL (29 November 2008). 5 February 2013에 확인.
  35. TPC-H Run on MySQL 5.1 and 6.0 | MySQL Performance Blog. MySQL Performance Blog. 8 June 2009에 확인.
  36. Oracle.com. Oracle.com (7 September 2010). 1 February 2012에 확인.
  37. dev.mysql.com. dev.mysql.com. 1 February 2012에 확인.
  38. dev.mysql.com. dev.mysql.com. 1 February 2012에 확인.
  39. MySQL Lists: packagers: MySQL 6.0.11 Alpha has been released!. Lists.mysql.com. 1 February 2012에 확인.
  40. What's New in MySQL 5.6. MySQL Developer Zone. 21 April 2011에 확인.

바깥 고리[편집]