전통문화대전망 - 전통 미덕 - MYSQL 의 발전사?

MYSQL 의 발전사?

MySQL 은 개발자의' 장난감' 에서 오늘날' 세계에서 가장 인기 있는 오픈 소스 데이터베이스' 로 바뀌었으며, 이 과정에서 제품 버전 업그레이드와 일부 새로운 기능 (특히 엔터프라이즈 데이터베이스 기능) 이 증가했습니다. 현재 MySQL 5. 이 완벽하게 개발됨에 따라 MySQL 을' 장난감 데이터베이스' 라고 부르는 사람은 거의 없습니다. MySQL 의 풍부한 기능은 많은 사용자의 요구를 충족했으며, Oracle 의 최근 작업은 MySQL 을 매우 중요하게 생각한다는 것을 보여 주었습니다. Oracle 은 MySQL 을 인수할 의향이 있다고 여러 차례 밝혔습니다.

MySQL 의 제품 로드맵

먼저 MySQL 의 보다 영향력 있는 버전 제품부터 시작하여 MySQL 의 교체를 살펴 보겠습니다.

MySQL 4.

MySQL 4. 은 23 년 3 월에 출시되어 새로운 MySQL 기반 애플리케이션을 더욱 광범위하게 적용할 수 있게 되었습니다. 그러나 버전 4. 에서 MySQL 은 저장된 프로시저, 트리거, 서버측 포인터 또는 보기를 지원하지 않습니다. MySQL 4. 은 3.23 에서 개발되었으며, 3.23 버전에 비해 크게 향상되었으며 주로 웹 사이트에 적용됩니다. 이때 MySQL 은 아직 엔터프라이즈 데이터베이스가 아닙니다.

다음은 MySQL 4. 의 주요 새로운 기능입니다.

전체 텍스트 인덱스: 가장 기대되는 것은 전체 텍스트 인덱스입니다.

FULLTEXT 는 텍스트 필드에 색인을 작성합니다. 이 색인에서 부울 검색을 수행할 수 있는 강력하고 유연한 메커니즘을 제공합니다. 일반적인 개발 경험에 따르면 개발자는 일반적으로 인덱스를 만들고 텍스트 데이터에 액세스해야 하지만 전체 텍스트 인덱스는 생각보다 훨씬 좋습니다.

많은 솔루션은 전체 텍스트 인덱스로 제한되며, 전체 텍스트 인덱스에는 이러한 제한이 없으므로 개발자가 구를 추가하거나 분할할 수 있습니다.

ANSI SQL UNION: 질의 결과를 하나의 결과 집합으로 그룹화하는 ANSI SQL UNION 문을 지원합니다.

다중 테이블 작업: 다중 테이블 업데이트 및 삭제를 수행할 수 있습니다.

새 문: 다른 DBMS 사용자에게 익숙한 IDENTITY 및 TRUNCATE TABLE 과 같은 비표준 새 문 및 LIMIT 절 없이 반환될 수 있는 레코드 번호를 반환하는 FOUND_ROWS () 와 같은 새 기능이 추가되었습니다.

InnoDB 스토리지 엔진: InnoDB 스토리지 엔진은 당시 서버의 표준 기능으로 버전 4. 에서 추가 옵션이 되었습니다. InnoDb 는 기본 MyISAM 테이블 유형이 아닌 ACID 호환 트랜잭션을 허용하는 테이블 유형이며 일반 사용 속도를 높일 수 있지만 중요한 작업에는 유용하지 않습니다.

InnoDB 테이블은 행 레벨 잠금 특성을 사용합니다. 즉, 레코드를 업데이트하면 전체 테이블이 아닌 해당 레코드만 잠깁니다. 많은 수의 데이터베이스 (대부분의 웹 사이트의 경우) 에 액세스하도록 선택하면 전체 테이블을 잠그는 것이 빠르지만 삽입 및 업데이트 수가 옵션 수에 가까우면 속도가 느려집니다. MySQL 에 대한 비판은 오랫동안 MyISAM 테이블의 보안 및 일관성 문제에 집중해 왔으며, ACID 호환 InnoDB 테이블은 이러한 문제를 해결하는 데 오랜 시간이 걸렸습니다.

쿼리 캐시: MySQL 4. 이 경우에 따라 더 빠를 수 있습니다. 이는 주로 쿼리 캐싱을 통해 수행되며, 많은 성숙한 응용 프로그램이 코드 수준에서 자체 쿼리 캐싱 기능을 수행하지만 중복 쿼리 결과를 저장하여 속도를 높입니다. 일부 명령문도 속도면에서 향상되었습니다.

p>Embededded Server:MySQL 4. 에는 응용 프로그램이 MySQL 을 기본 데이터베이스로 사용할 수 있는 Embededded Server 라이브러리가 함께 제공됩니다.

p>latin1_de :MySQL 4. 은 독일어 단어가 올바르게 저장되도록 추가 문자 집합 latin1_de 를 지원합니다.

MyISAM: MySQL 4. 의 myisam 테이블은 현재 테이블 레벨에서 심볼 링크를 지원하므로 Windows 사용자는 테이블 레벨에서 심볼 링크를 만들 수 있습니다 (Unix 사용자에게는 항상 유효함).

보안 모델: MySQL 4. 의 보안 모델이 개선되어 관리자가 라이센스를 보다 세밀하게 승인할 수 있습니다. 새로운 권한을 통해 사용자는 준비 테이블 생성, 테이블 잠금, 일부 복제 작업 수행, 모든 기존 데이터베이스 보기, 최대 접속 한도에 도달할 때도 접속할 수 있습니다. DBA 가 긴급 작업을 수행하는 데 유용하며 MySQL 5 에서 구현된 저장 프로시저 실행도 가능합니다. DBA 는 향상된 보안 모드에 의존하여 사용자의 시간별 접속, 업데이트 또는 조회 수를 제한할 수도 있습니다.

MySQL 4 설계는 Novell Netware 6. 에서 실행됩니다. 또한 서버를 재부팅하지 않고 변경할 수 있는 MySQL 서버 변수 중 상당수가 있는데, 다시 시작하면 이전 설정이 복원되기 때문에 유용합니다.

MySQL 4.1

MySQL 4.1 출시 이후 일부 사용자에게 4.1 은 MySQL 4. 보다 더 흥미로운 업그레이드 가능성을 가지고 있습니다.

MySQL 4.1 은 하위 쿼리를 지원합니다.

하위 질의를 사용하지 않을 경우 많은 질의를 더 효율적으로 작성할 수 있지만 예외가 있습니다. 하위 조회는 표준 ANSI SQL 특성입니다.

는 유니코드 (utf-8) 를 지원하여 보다 광범위한 인터내셔널리제이션을 가능하게 합니다.

각 열, 테이블 또는 데이터베이스는 서로 다른 문자 세트를 설정할 수 있습니다. 데이터를 여러 언어로 저장하는 데 필요합니다.

는 지리 데이터 (OpenGIS) 를 지원합니다.

향상된 경고 전송. 하나가 충분하지 않은 경우 MySQL 4.1 은 클라이언트에 여러 경고를 보낼 수 있으므로 전체 데이터 처리에 유용합니다.

일부 속도가 향상되었습니다. 그러나 이러한 속도 향상은 MySQL 4.1 이 부담하는 모든 추가 부분에 의해 상쇄될 수 있습니다.

MySQL 설명서가 게시되는 가장 좋은 설명서 중 하나이지만 MySQL 4.1 에는 해당 버전에만 적용되는 HELP 명령이 포함되어 있습니다.

는 파생된 테이블을 지원합니다 (예:

select table 1.field 1 from table, (select * from table 2) table 3 where table 1.field 1)

다양한 유지 관리 명령문은 바이너리 로그에 저장되므로 복제 시 유지 관리 작업을 단순화할 수 있습니다.

CREATE...LIKE 를 통해 개발자는 기존 테이블의 정확한 구조에 따라 새 테이블을 쉽게 작성할 수 있습니다. < P > 또한 MySQL 4.1 의 세 가지 주요 기능은 안정적인 OpenSSL 지원, 더 많은 테스트 준비문, 테이블의 여러 문자 세트 테스트입니다.

MySQL 4.1 은 아마도 첫 번째 실제' 성인' 의 MySQL 버전일 것입니다. 버전 4.1 에 새로 추가된 기능 및 기능 (예: 지리 데이터, 하위 선택 문, 파생된 테이블) 으로 인해 Oracle 은 처음으로 MySQL 에 관심을 갖기 시작했습니다.

MySQL 5.

는 저장 프로시저를 지원합니다. 저장 프로시저는 개발자가 다른 데이터베이스 환경에서 가장 많이 사용하는 ANSI SQL 표준이며 MySQL 에게는 이미 늦었습니다. MySQL 5. 에서 지원하는 내장 프로시저의 구문은 Oracle PL/SQL 및 T-SQL 과 유사합니다.

트리거 (이벤트 발생 시 저장된 프로시저라고 함)

지원 포인터

는 VARCHAR 데이터 유형을 실제로 지원하여 장기적인 MySQL varchar 버그를 해결합니다.

MyISAM 테이블의 RTREE 인덱스 지원을 통해 지리적 데이터에 쉽게 액세스할 수 있습니다.

MySQL 5.1

MySQL 5.1 은 버전 5. 에 비해 몇 가지 새로운 기능을 구현합니다.

온라인 백업 (운영 서버를 종료하지 않고 replication slave 추가 가능).

BIT 유형, 실제로 1 자 대신 1 비트를 차지합니다.

실패 보호 (failsafe) 복제

온라인 참조 ~