MySQL

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

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

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

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

인터페이스 

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

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

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

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

MySQL은 공식적으로 아래의 프로그래밍 언어를 지원한다.
 C/C++
 C#/F#
 볼랜드 델파이 (dbExpress를 통한)
 자바 (네이티브 자바 드라이버를 통한)
 파이썬
 루비
 REALbasic (매킨토시 계열)
 프리베이직
 스몰토크
 Eiffel
 리스프
 펄
 Tcl
 PHP PHP4 PHP5 PHP6
 델파이1  델파이2  델파이3 델파이4 델파이5델파이6델파이7델파이8
 델파이2007델파이2008델파이2009
 파파라치

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

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

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

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

버전

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

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

같이 보기 
 마리아 DB

각주

외부 링크 

  
  MySQL 5.5 Reference Manual

 
자유 소프트웨어
자유 데이터베이스 관리 시스템
1995년 소프트웨어
오라클 소프트웨어
GPL 라이선스 소프트웨어
관계형 데이터베이스 관리 시스템
자유 데이터베이스 관리 시스템
워드프레스
썬 마이크로시스템즈 소프트웨어