-
MySQL은 개발자의 손에 있는 "장난감"에서 오늘날 "세계에서 가장 인기 있는 오픈 소스 데이터베이스"로 변모했습니다. 이 프로세스에는 제품 버전 업그레이드와 몇 가지 새로운 기능(특히 엔터프라이즈 데이터베이스 기능)이 추가되었습니다. MySQL은 개발자의 손에 있는 "장난감"에서 오늘날 "세계에서 가장 인기 있는 오픈 소스 데이터베이스"로 변모했습니다. 이 프로세스에는 제품 버전 업그레이드와 몇 가지 새로운 기능(특히 엔터프라이즈 데이터베이스 기능)이 추가됩니다. 이제 MySQL 5.0이 완벽하게 개발되면서 MySQL을 "장난감 데이터베이스"라고 부르는 사람은 거의 없습니다. MySQL의 풍부한 기능은 많은 사용자의 요구를 충족시킵니다. Oracle의 최근 조치는 MySQL을 매우 진지하게 받아들이고 있음을 보여줍니다. Oracle은 MySQL을 인수하겠다는 의사를 여러 번 밝혔습니다.
MySQL 제품 로드맵
보다 영향력 있는 MySQL 버전부터 시작하여 MySQL의 업데이트를 살펴보겠습니다.
MySQL 4.0
MySQL 4.0은 2003년 3월에 출시되어 새로운 MySQL 기반 애플리케이션을 더욱 광범위하게 사용할 수 있게 되었습니다. 그러나 버전 4.0에서는 MySQL이 저장 프로시저, 트리거, 서버 측 포인터 또는 뷰를 지원하지 않습니다. MySQL 4.0은 3.23에서 개발되었습니다. 3.23 버전에 비해 크게 개선되었습니다. 현재로서는 MySQL이 아직 엔터프라이즈급 데이터베이스에 적합하지 않습니다.
다음은 MySQL 4.0의 새로운 주요 기능입니다.
FULLTEXT 인덱스: 아마도 사용자가 가장 기대하는 것은 FULLTEXT 인덱스일 것입니다.
FULLTEXT는 텍스트 필드에 인덱스를 생성하여 인덱스에 대한 부울 검색을 수행하기 위한 강력하고 유연한 메커니즘을 제공합니다. 일반적인 개발 경험에 따르면 개발자는 일반적으로 인덱스를 만들고 텍스트 데이터에 액세스해야 하는데 FULLTEXT 인덱스는 상상보다 훨씬 좋습니다.
많은 솔루션이 전체 단어 인덱스로 제한되어 있지만 FULLTEXT 인덱스에는 이러한 제한이 없으므로 개발자가 구문을 추가하거나 분할할 수 있습니다.
ANSI SQL UNION: 쿼리 결과를 결과 집합으로 수집하는 ANSI SQL UNION 문을 지원합니다.
다중 테이블 작업: 다중 테이블 UPDATE 및 DELETE를 수행할 수 있습니다.
새로운 문: 다른 DBMS 사용자에게 친숙한 일부 비표준 새 문(예: IDENTITY 및 TRUNCATE TABLE)과 LIMIT 절 없이 반환할 수 있는 레코드 수를 반환할 수 있는 FOUND_ROWS()와 같은 새로운 함수를 추가했습니다. .
InnoDB 스토리지 엔진: InnoDB 스토리지 엔진은 당시 서버의 표준 기능이었으며 버전 4.0에서는 추가 옵션이 되었습니다. InnoDb는 기본 MyISAM 테이블 유형 대신 ACID 호환 트랜잭션을 허용하는 테이블 유형으로, 일반적인 사용 속도를 높일 수 있지만 중요한 작업에는 그다지 유용하지 않습니다.
InnoDB 테이블은 행 수준 잠금을 사용합니다. 즉, 레코드 업데이트는 전체 테이블이 아니라 해당 레코드만 잠그는 것을 의미합니다. 전체 테이블을 잠그는 것은 선택 항목이 대규모 데이터베이스에 액세스할 때 상당히 빠르지만(대부분의 웹 사이트의 경우와 마찬가지로) 삽입 및 업데이트 수가 옵션 수에 가까워지면 속도가 느려집니다. MySQL에 대한 비판은 오랫동안 MyISAM 테이블의 보안 및 일관성 문제에 초점을 맞춰 왔으며 ACID 호환 InnoDB 테이블은 이러한 문제를 해결하는 데 큰 도움이 되었습니다.
쿼리 캐싱: 어떤 경우에는 MySQL 4.0이 더 빠를 수 있습니다. 이는 주로 속도 향상을 위해 중복된 쿼리 결과를 저장하는 쿼리 캐싱을 통해 수행되지만, 많은 성숙한 애플리케이션은 일부 코드 수준에서 자체 쿼리 캐싱 기능을 수행합니다. 특정 명령문의 속도도 향상되었습니다.
임베디드 서버: MySQL 4.0에는 애플리케이션이 MySQL을 기본 데이터베이스로 사용할 수 있게 해주는 임베디드 서버 라이브러리가 함께 제공됩니다.
latin1_de: MySQL 4.0은 독일어 단어가 올바르게 저장되도록 보장하는 추가 문자 세트 latin1_de를 지원합니다.
MyISAM: MySQL 4.0의 MyISAM 테이블은 현재 테이블 수준에서 기호 링크를 지원하므로 Windows 사용자는 테이블 수준에서 기호 링크를 생성할 수 있습니다(Unix 사용자에게는 항상 작동함).
보안 모델: MySQL 4.0의 보안 모델이 향상되어 관리자가 보다 세부적인 방법으로 권한을 승인할 수 있습니다. 새로운 권한을 통해 사용자는 임시 테이블을 생성하고, 테이블을 잠그고, 특정 복제 작업을 수행하고, 기존의 모든 데이터베이스를 볼 수 있으며, 심지어 최대 연결 제한에 도달했을 때 연결할 수도 있습니다. 이는 DBA가 긴급 작업을 수행하고 스토리지 절차 실행을 허용하는 데 매우 유용합니다. 이 기능은 MySQL 5에서 구현되었습니다. 향상된 보안 모드를 사용하여 DBA는 사용자가 시간당 수행할 수 있는 연결, 업데이트 또는 쿼리 수를 제한할 수도 있습니다.
MySQL 4는 Novell Netware 6.0에서 실행되도록 설계되었습니다. 또한, 많은 MySQL 서버 변수는 서버를 다시 시작하지 않고도 변경할 수 있는데, 다시 시작하면 이전 설정이 복원되므로 매우 유용합니다.
MySQL 4.1
MySQL 4.1이 출시된 후 일부 사용자의 경우 4.1은 MySQL 4.0보다 더 흥미로운 업그레이드 가능성을 제공합니다.
MySQL 4.1은 하위 쿼리를 지원합니다.
하위 쿼리를 사용하지 않고도 많은 쿼리를 더 효율적으로 작성할 수 있지만 예외도 있습니다. 하위 쿼리는 표준 ANSI SQL 기능입니다.
유니코드(UTF-8)를 지원하므로 더 폭넓은 국제화가 가능합니다.
각 열, 테이블 또는 데이터베이스는 서로 다른 문자 집합을 가질 수 있으며 이는 데이터가 여러 언어로 저장된 경우 필요합니다.
지리 데이터 지원(OpenGIS)
향상된 경고 전송. 하나가 충분하지 않은 경우 MySQL 4.1은 클라이언트에 여러 경고를 보낼 수 있으며 이는 전체 데이터 처리에 매우 유용합니다.
속도가 일부 향상되었습니다. 그러나 이러한 속도 향상은 MySQL 4.1이 차지하는 모든 추가 무게로 인해 상쇄될 수 있습니다.
MySQL 매뉴얼은 출시된 최고의 매뉴얼 중 하나이지만, MySQL 4.1에는 해당 버전에서만 작동하는 HELP 명령이 함께 제공됩니다.
다음과 같은 파생 테이블이 지원됩니다.
SELECT table1.field1 FROM 테이블, (SELECT * FROM table2) table3 WHERE table1.field1=table3.field1
다중 행 쿼리를 지원하므로 여러 쿼리를 실행한 다음 최종 결과를 읽을 수 있습니다.
다양한 유지 관리 명령문이 바이너리 로그에 저장되어 복제 시 유지 관리 작업을 단순화할 수 있습니다.
CREATE...LIKE를 사용하면 개발자가 기존 테이블의 정확한 구조로 새 테이블을 쉽게 만들 수 있습니다.
또한 MySQL 4.1의 주목할만한 세 가지 기능에는 안정적인 OpenSSL 지원, 더 많은 테스트 준비 명령문, 테이블에 대한 여러 문자 집합에 대한 더 많은 테스트가 포함됩니다.
MySQL 4.1은 실제로 "성장"하는 최초의 MySQL 버전일 수 있습니다. 버전 4.1에 새로 추가된 기능(지리적 데이터, 하위 선택 문, 파생 테이블 등)으로 인해 Oracle은 처음으로 MySQL에 관심을 갖기 시작했습니다.
MySQL 5.0
저장 프로시저를 지원합니다. 저장 프로시저는 다른 데이터베이스 환경의 개발자가 가장 일반적으로 사용하는 ANSI SQL 표준입니다. MySQL 5.0에서 지원하는 저장 프로시저의 구문은 Oracle PL/SQL 및 T-SQL과 유사합니다.
트리거 프로그램(이벤트 발생 시 저장 프로시저라고 함)
지원 포인터
VARCHAR 데이터 유형을 실제로 지원하여 오랫동안 지속된 MySQL VARCHAR 버그를 해결합니다.
MyISAM 테이블에서 RTREE 인덱스를 지원하면 지리적 데이터에 쉽게 액세스할 수 있습니다.
MySQL 5.1
버전 5.0과 비교하여 MySQL 5.1은 몇 가지 새로운 기능을 구현합니다.
온라인 백업(마스터 서버를 종료하지 않고 복제 슬레이브 추가 가능)
BIT 유형은 실제로 1문자가 아닌 1비트를 차지합니다.
안전한 복제
-