MySQL은 5.6, 5.7, 8.0 버전의 새로운 기능 Daquan의

MySQL의 역사를 위해, 나는 여기를 반복하지 않는, 익숙한 많은 사람들을 생각합니다. 여기에 단지 개발 과정의 이정표를 빗질 제품 특성의 관점에서.

1995 년, MySQL은 1.0 내부에서만 사용하는 릴리스.

1996 년, MySQL은 3.11.1 버전의 MySQL의 2.X 버전을 건너 뜁니다.

1999 년, MySQL은 AB가 설립되었습니다. 같은 해,이 버전은 버클리 DB 스토리지 엔진을 통합, 3.23를 발표했다. 회사 슬리피 캣이 개발 한 엔진, 지원 거래. 통합 과정의 엔진에서 소스 코드는 다음 플러그 스토리지 엔진 아키텍처를위한 토대를 마련, 변형되었습니다.

2000 년의 MyISAM 스토리지 엔진으로 ISAM 업그레이드. 같은 해에, GPL 오픈 소스 계약에 따라 MySQL을.

2002 년, MySQL은 4.0 릴리스는 나중에 유명한 InnoDB 스토리지 엔진을 통합. 엔진, Innobase 회사에 의해 개발 된 트랜잭션을 지원, 높은 동시성 OLTP 장면에 대한 행 수준 잠금을 지원했다.

2008 년의 MySQL AB의 100 억 달러의 인수에 태양입니다. 같은 해,이 타이머 (이벤트 스케줄러), 파티션 및 기타 특성을 기반 복제 라인을 지원하기 시작, MySQL은 5.1을 발표했다.

썬 마이크로 시스템즈의 2009 년 오라클에 74 억 달러 인수.

2010 년, MySQL은 5.5 다음과 같은 주요 기능 및 업데이트가 포함되어 출시.

  • 대신의 MyISAM의 MySQL의 InnoDB는 기본 스토리지 엔진이된다.
  • 다핵 확장은 더욱 완벽하게 멀티 코어 CPU가 될 수 있습니다.
  • 인덱스의 빠른 생성을위한 지원을 포함 이노의 성능, 리프트의 테이블 압축 성능 I / O 서브 시스템은 메인 스레드에서 박리 퍼지 작업은 버퍼 풀은 인스턴스의 복수로 분할 될 수있다.
  • 반 동기식 복제.
  • utf8mb4 문자 집합을 소개하는 이모티콘 식을 저장하는 데 사용할 수 있습니다.
  • 등장 메타 잠금 (잠금 메타).
  • 고급 파티션 테이블, 두 개의 새 파티션 유형 : RANGE 열 및 LIST 열입니다.
  • MySQL의 기업 소개 스레드 풀.
  • 수 (innodb_read_io_threads, innodb_write_io_threads)을 읽고 IO 스레드를 작성하도록 구성 할 수 있습니다. 이에 앞서, 수 1, 비 구성.
  • 더티 페이지 새로 고침의 innodb_io_capacity 옵션의 도입은 수를 제어 할 수 있습니다.


2013 년 의 MySQL 5.6 다음과 같은 주요 기능 및 업데이트가 포함되어 출시.

  • GTID 사본.
  • 무손실 사본.
  • 지연 복제.
  • 병렬 라이브러리 레벨을 복사합니다.
  • mysqlbinlog은 원격 백업 바이너리 로그가 될 수 있습니다.
  • 시간, DATETIME과 TIMESTAMP는 소수점 이하의 초를 지원하기 위해 재구성되었습니다. DATETIME 공간 요구 사항은 이전에 5 바이트 8 바이트에서 감소한다.
  • 온라인 DDL. ALTER 작업이 더 이상 DML을 차단하지 않습니다.
  • 이동 가능한 테이블 스페이스 (이동 가능한 테이블 스페이스).
  • 영구 통계. 마스터와 슬레이브, 또는 데이터베이스를 재시작 사이 회피 후 SQL 실행 플랜에 차이가있다.
  • 전체 텍스트 인덱싱.
  • 이노 Memcached가 플러그인.
  • 이 전 등 UPDATE DML 작업을, 실행 계획을 볼 INSERT, DELETE 대체 할 수 EXPLAIN 만 SELECT 동작을 지원한다.
  • 파티션 명시 동작을 지정 분할 및 비 분할 테이블 간의 데이터 교환을 지원하기 위해 사용 가능한 최대 8192 분할 수의 증가를 포함하여, 파티션 테이블 강화.
  • 512G로 이전 세대에서 확장 총 크기 제한을 리두 로그.
  • IO는 SSD에서 무작위, 더 적당한 장소이기 때문에 로그 테이블, 별도의 공간에 저장 될 수 있습니다 취소합니다. 하지만 여전히 자동 복구 공간을 지원하지 않습니다.
  • 상태는 긴 예열 시간 후 데이터베이스를 다시 시작해야 할 필요성을 피하고, 덤프 및 버퍼 풀을로드 할 수 있습니다.
  • 분할 커널 뮤텍스를 포함하는 승강기 내부 이노 성과는 독립적 인 리프레시의 스레드, 퍼지 복수의 스레드에 제공 될 수있다.
  • 하위 쿼리에 최적화 된 최적화 성능, ICP, MRR, BKA 및 기타 기능의 도입.

MySQL의 5.6 현재 생산 버전에 가장 널리 사용되는 응용 프로그램입니다 MySQL 버전의 역사에 이정표라고 할 수있다.

2015 년 의 MySQL 5.7 다음과 같은 주요 기능 및 업데이트가 포함되어 출시.

  • 그룹 복사
  • InnoDB의 클러스터
  • 멀티 소스 복사
  • 강화 된 반 동기 (AFTER_SYNC)
  • 병렬 복사 WRITESET 기반.
  • 온라인 공개 GTID 사본.
  • 온라인 복제 필터링 규칙을 설정합니다.
  • 온라인 버퍼 풀의 크기를 수정합니다.
  • 동일한 길이 부호화 바이트에서 VARCHAR의 크기가 임시 테이블을 생성하지 않고, 메타 데이터 테이블 만 수정 수정한다.
  • NUMA 아키텍처는 메모리 할당 전략 (innodb_numa_interleave)을 설정할 수 있습니다.
  • 투명 페이지 압축 (투명 페이지 압축).
  • 테이블 스페이스의 자동 복구를 취소합니다.
  • 쿼리 최적화 재건과 강화.
  • SQL 실행 계획 (연결에 대 한 설명) 현재 실행중인 볼 수 있습니다.
  • 플러그인 쿼리 재 작성의 도입 (쿼리 재 작성 플러그인은), 쿼리가 서버에 다시 작성할 수 있습니다.
  • FORMAT = JSON 표시이 직접이 실행이 장점을 계획하고 비교할 수, 비용 정보를 설명합니다.
  • 오라클의 인덱스의 기능과 유사한 가상 컬럼의 도입.
  • 새로운 인스턴스가 더 이상 테스트 데이터베이스와 익명을 만들 수있는 기본 사용자입니다.
  • 소개 ALTER USER 명령은 사용자 암호 만료 정책, 암호 및 잠금 사용자를 수정하는 데 사용할 수 있습니다.
  • 암호 필드에서 암호를 저장 mysql 데이터베이스에서 user 테이블 authentication_string을 수정됩니다.
  • 테이블 스페이스 암호화.
  • 메모리 사용을 줄이고, 성능 스키마를 최적화.
  • 성능 스키마 장비의 숫자를 소개합니다. 일반적으로 메모리 사용량 계측에 사용, MySQL의 메모리 사용, 메타 데이터 잠금 계측을 보는 데 사용할 수 있으며, MDL 보유, 무대 진행 계측을 볼 수 있습니다, 온라인 DDL의 진행 상황을 볼 수 있습니다.
  • 같은 트리거 이벤트 (삽입, 삭제, 업데이트), 동일한 트리거 시간 (BEFORE, AFTER), 다수의 트리거의 생성을 허용한다. 이에 앞서, 만 트리거를 만들 수 있습니다.
  • 파티션 테이블에 대한 이노 기본 지원은, 그 전에, 인터페이스는 ha_partition에 의해 구현됩니다.
  • 파티션 테이블 지원 수송 테이블 스페이스 특성.
  • SYS 통합 데이터베이스는 MySQL은 관리 및 비정상적인 위치 문제를 단순화합니다.
  • 네이티브 JSON 형식에 대한 지원, 그리고 JSON 함수를 소개합니다.
  • 이 테이블 수준의 멀티 스레드 백업을 지원하기 위해, 새로운 논리적 백업 도구 -mysqlpump을 소개합니다.
  • :이 세 가지 언어를 지원 -mysqlsh 새로운 클라이언트 도구 소개 자바 스크립트 및 SQL을. API의 두 종류 : 전자는 InnoDB의 클러스터를 관리하는 데 사용되는 문서 MySQL 데이터베이스로 작동 할 수있어서, X DevAPI, AdminAPI.
  • 인스턴스가 초기화 될 때까지 mysql_install_db가의 mysqld를가 교체 될 --initialize.
  • 원생지지 systemd.
  • super_read_only 옵션을 도입.
  • 롱 (max_execution_time이라는)을 초과 할 경우 SELECT 동작이 제공 될 수있다.
  • 예는 MySQL의 종료 명령에 의해 폐쇄 될 수있다.
  • 높은 동시성 시나리오에서 도입 옵션 Innodb_deadlock_detect,이 옵션은 교착 상태 감지를 해제하는 데 사용할 수 있습니다.
  • 도입 최적화 힌트는, 이와 이전 등 ICP, MRR을 열고 여부로, 문 수준의 최적화 행동을 제어 할 수 있습니다 만 인덱스 힌트.
  • Boost.Geometry 대안 전에 GIS 알고리즘의 사용을 포함하여 GIS의 개선, InnoDB는 공간 인덱스를 지원하기 시작했다.

2018, MySQL은 8.0 다음과 같은 주요 기능 및 업데이트가 포함되어 출시.

  • InnoDB의 데이터 사전을 기반으로, 네이티브 소개합니다. 데이터 사전 테이블은 다른 시스템 테이블 MySQL 데이터베이스와 같은 mysql.ibd 데이터 디렉토리에 파일을 저장, 사용자에게 보이지 않는, MySQL 데이터베이스에 있습니다. 더 이상 MySQL의 디렉토리 아래에 위치합니다.
  • 원자 DDL.
  • 파트 테이블 뷰 데이터 사전 전에 임시 테이블에 기초하여 재구성된다 상기 INFORMATION_SCHEMA의 재구성.
  • PERFORMANCE_SCHEMA 쿼리 성능, 그것은 여러 인덱스를 구축하고있다.
  • 보이지 않는 인덱스 (보이지 않는 인덱스).
  • 인덱스를 내림차순.
  • 히스토그램.
  • 공통 테이블 식 (공통 테이블 표현식).
  • 윈도우 함수 (윈도우 함수).
  • 역할 (역할).
  • 현재 만 자원 CPU를 관리 할 수 ​​있습니다, 리소스 그룹 (자원 그룹), 자원을 제어 할 수 있고, 스레드의 우선 순위를 사용할 수 있습니다.
  • 도입 innodb_dedicated_server 옵션은 동적 innodb_buffer_pool_size innodb_log_file_size와 innodb_flush_method를 메모리 기반 서버를 설정할 수 있습니다.
  • 빠른 플러스 열 (ALGORITHM = INSTANT).
  • json으로 필드는 (JSON 부분 업데이트) 업데이트됩니다.
  • 자동 증가 기본 키 지속성.
  • 수 지속적으로 전역 변수 (SET는 PERSIST).
  • utf8mb4에 latin1에 기본 문자 집합을 수정합니다.
  • 테이블 기본적으로 활성화 공간, 온라인 지원 조정 (innodb_undo_tablespaces)의 수를 취소합니다. MySQL은 5.7에서 기본은 만 초기화 중에 설정할 수 있습니다, 열, 열려 있지 않습니다.
  • 백업 잠금.
  • 사용자가 복수의 스레드를 포함하는, 최적화 재실행 로그하는 동시 쓰기 버퍼 로그 허용 동적 innodb_log_buffer_size의 크기를 변경할 수있다.
  • mysql_native_password의 caching_sha2_password에 기본 인증 플러그인 변경됩니다.
  • 기본 메모리 임시 테이블은 이전에 비해 TEMPTABLE 엔진 MEMORY 엔진 변경, 후자는 VARCHAR, VARBINARY 및 기타 가변 길이 필드에 저장 가변 길이를 지원합니다. MySQL은 8.0.13부터, BLOB 필드에 대한 TEMPTABLE 엔진을 지원합니다.
  • 그랜트는 더 이상 암시 적으로 사용자가 만들어지지 않습니다.
  • 문 공유에 대한 ... SELECT 도입 및 UPDATE NOWAIT SELECT ... FOR 및 전기 문제 핫 라인 사업 현장을 해결하기 LOCKED 옵션을 생략합니다.
  • 정규 표현식 향상, 새로운 네 상관 함수, REGEXP_INSTR (), REGEXP_LIKE (), REGEXP_REPLACE (), REGEXP_SUBSTR ().
  • 이행 계획의 개발에 쿼리 최적화 프로그램은 버퍼 풀에있는 데이터 여부를 고려할 것입니다. 그 전에, 가정이 디스크의 데이터.
  • 파티션 테이블이 사용되는 경우 ha_partition 인터페이스 층은 InnoDB 스토리지 엔진 코드로부터 제거된다.
  • SUPER 권한을 대체 할 더 세분화 된 사용 권한의 도입은 이제 SUPER 권한이 경고 메시지를 표시합니다 수여했다.
  • 문 BY 그룹은 더 이상 암시 적 순서입니다.
  • 소개 MySQL은 5.7 테이블 스페이스 암호화 기능은 리두 로그 및 실행 취소 로그를 암호화합니다.
  • innodb_locks의 INFORMATION_SCHEMA 및 innodb_lock_waits 테이블은 data_locks의 performance_schema 및 data_lock_waits 테이블로 대체 제거된다.
  • performance_schema.variables_info 테이블의 도입은, 기원 및 매개 변수의 개정을 기록합니다.
  • 클라이언트 오류 메시지에 대한 증가 통계 (performance_schema.events_errors_summary_xxx).
  • 통계 쿼리 응답 시간 분포 (전화 sys.ps_statement_avg_latency_histogram ()).
  • 지원은 직접 열 이름을 (를 new_name 열 OLD_NAME을 RENAME ... 표를 ALTER) 수정.
  • 사용자 암호는 전략 (재사용 정책을) 다시 시도하도록 설정할 수 있습니다.
  • PASSWORD () 함수를 제거합니다. 이것은을 통해 "암호 설정 ... = PASSWORD ( 'auth_string')"명령은 사용자의 암호를 변경하지 않는 것을 의미한다.
  • 관련 변수와 연산자 쿼리 캐시는 더 이상 지원되도록 코드 쿼리 캐시 모듈 층은 제거되지 않습니다.
  • BLOB는, TEXT는 기하학과 JSON 필드는 기본값을 설정할 수 있습니다.
  • 당신은 RESTART 명령을 통해 MySQL의 인스턴스를 다시 시작할 수 있습니다.

이는 전술 한 공보는, 일반적 GA 버전들을 지칭한다.

마지막으로, 다음 표를 보면, 테이블은 몇 가지 큰 시간의 최근 릴리스를 보여주고,이 책의로, 작은 릴리즈 타임의 최신 버전을 게시됩니다.

테이블 뷰의 데이터에서,

1. 아마 3 년마다 주요 버전을 출시 할 예정이다.

2. 제품 지원주기는 일반적으로 팔년입니다.

MySQL의 5.5 언덕 오래된,하지만 당국은 여전히 ​​지속적으로 업데이트하십시오.

추천

출처www.linuxidc.com/Linux/2019-09/160664.htm