>  기사  >  데이터 베이스  >  Mysql5.5&Mysql5.6&Mysql5.7특별성

Mysql5.5&Mysql5.6&Mysql5.7특별성

黄舟
黄舟원래의
2017-02-07 11:13:321220검색

Mysql5.5 기능, Mysql5.1과 비교

성능 개선

  • 기본 InnoDB 플러그인 엔진. 커밋, 롤백 및 충돌 복구 기능이 있으며 ACID와 호환됩니다.

  • 행 수준 잠금(일관적인 비잠금 읽기 MVCC).

  • 테이블스페이스에는 테이블과 인덱스가 저장되며, 테이블 크기는 무제한이다.

  • 동적(기본 키 쿼리로 인한 IO를 방지하기 위한 기본 키 캐시 메모리) 및 압축(데이터 및 인덱스 압축 지원) 행 형식을 지원합니다.

  • InnoDB 플러그인 파일 형식 Barracuda는 테이블 압축을 지원하고 스토리지를 절약하며 메모리 적중률을 제공하고 테이블을 더 빠르게 자릅니다.

  • Innodb_thread_concurrency의 기본값은 0이며, 동시 스레드 수는 무제한입니다. 특정 애플리케이션에 따라 최적의 값을 설정할 수 있습니다.

  • Innodb_io_capacity는 새로 고칠 더티 페이지 수를 동적으로 조정할 수 있으며, 대규모 일괄 업데이트 중에 더티 페이지 새로 고침을 따라잡지 못해 발생하는 성능 저하를 개선합니다. 기본값: 200, 하드 디스크의 IOPS와 관련됩니다.

  • CPU의 멀티 코어 처리 능력을 최대한 활용하세요. innodb_read_io_threads 임계값: 1-64 innodb_write_io_threads 임계값: 1-64는 읽기-쓰기 비율에 따라 유연하게 설정할 수 있습니다. 다중 CPU 및 고성능 저장 장치의 성능을 최대한 활용하기 위한 데이터베이스 동적 로딩은 지원되지 않습니다.

  • 적응적으로 더티 페이지 새로 고침

  • 핫 데이터는 더 오래 지속됩니다

  • 버퍼 풀 다중 인스턴스: innodb_buffer_pool_instances 매개변수는 innodb_buffer_pool 인스턴스 수를 늘려 버퍼 풀의 뮤텍스 경합 및 과열을 크게 줄입니다.

  • Linux 비동기 IO

  • 그룹 제출 재지원

  • 안정성 개선

반동기식 복제를 지원합니다.

  • 릴레이 로그 자가 치유 기능을 추가합니다.

  • 충돌 복구.

  • 삽입 정렬을 위한 중간 데이터 구조로 레드-블랙 트리를 도입하면 시간 복잡도가 크게 줄어들고 복구 시간도 단축됩니다.

  • 스레드 풀 그룹 대기열 및 현재 제한

  • Mysql5.6 기능과 5.5 비교

기본 매개변수 변경

  • Back_log Queue

  • 전체 텍스트 인덱스 지원

  • 온라인 지원 DDL create ,alter,drop

  • 테이블 생성 시 테이블 공간 위치를 지정할 수 있습니다

  •             테이블 외부 생성(x int unsigned not null 기본 키)데이터 디렉터리 = '/volumes/ external1/data';
  • 새 매개변수 innodb_page_size는 페이지 크기를 설정할 수 있습니다

  • 통합된 memcached API를 사용할 수 있습니다. SQL이 아닌 innodb 테이블에 직접 액세스하는 API(SQL 구문 분석 및 쿼리 최적화 비용 절감)

  • innodb 읽기 전용 트랜잭션, TRX_ID 필드 설정 필요 없음,

  • 내부 데이터 구조적 오버헤드 감소, 읽기 보기 감소

  • 읽기 전용이 아닌 트랜잭션에만 여전히 TRX_ID가 필요합니다

  • innodb 개선점

Innodb 테이블스페이스 온라인 마이그레이션(TransportableTablespaces)

  • Undo 로그를 시스템 테이블스페이스와 독립적으로 분리 가능

  • redo 로그는 최대 512G까지 확장 가능

  • innodb 백그라운드 스레드는 독립적입니다

  • Optimizer 개선

ICP

    엔진 계층에서 데이터를 직접 필터링하여 2차 테이블 반환을 방지할 수 있습니다.
  • BP 공간 절약 및 쿼리 성능 향상

    BKA

  • 전체 이름 일괄 키 액세스:
  • SQL이 보조 인덱스를 통해 테이블 ​​데이터에 액세스할 때 캐시에 대량의 무작위 액세스를 넣고 이를 MRR 인터페이스에 전달하여 순차 액세스로 병합합니다.

    MRR

  • Full name Multi Range Read:
  • BKA 알고리즘 적용 후 MRR 인터페이스를 통해 랜덤 액세스가 순차 액세스로 병합되며, 그런 다음 테이블에서 데이터가 검색됩니다.

    다수의 랜덤접속을 순차접근으로 변경합니다. 보조 인덱스를 통해 많은 양의 데이터를 검색할 때 성능이 대폭 향상됩니다

    자기 헤드는 앞뒤로 탐색할 필요가 없고 페이지는 한 번만 읽으면 되며 innodb 선형 읽기는 미리 기능이 더 잘 활용됩니다(매번 64개의 연속 페이지를 미리 읽음).

    통계 정보는 지속적이고 mysqld가 다시 시작된 후에도 손실되지 않습니다.

  • Explain 문은 삽입, 업데이트, 삭제, 교체 문을 지원하며 JSON 형식 지원

  • 하위 쿼리 최적화 개선.

Mysql5.7 기능과 5.5 5.6 비교


보안

사용자 테이블 mysql.user의 플러그인 필드는 비어 있을 수 없습니다. 기본값은 mysql_old_password가 아니라 mysql_native_password입니다.

  • 비밀번호 만료 메커니즘을 추가합니다. 만료 후 비밀번호를 변경해야 합니다. 그렇지 않으면 비활성화되거나 샌드박스 모드로 들어갈 수 있습니다.

  • 비밀번호 만료 메커니즘을 추가합니다. , 만료 나중에 비밀번호를 변경해야 합니다. 그렇지 않으면 비활성화되거나 샌드박스 모드로 들어갈 수 있습니다.

  • 는 더 간단한 SSL 보안 액세스 구성을 제공하며 기본 연결은 SSL 암호화를 사용합니다.

  • 유연성

    • MySQL 데이터베이스도 버전 5.7.8부터 JSON을 지원합니다.

    • 은 정형 데이터와 비정형 데이터를 혼합하여 저장할 수 있으며 관계형 데이터베이스와 비관계형 데이터베이스의 장점을 모두 가지고 있습니다.

    • 은 완전한 트랜잭션 지원

    • 생성 열은 MySQL 5.7에 도입된 새로운 기능입니다. 소위 생성 열은 데이터베이스의 이 열이 다른 열에서 계산된다는 의미입니다

    사용 편의성

    • MySQL 5.7 이전에는 사용자가 잘못된 SQL 문을 입력하고 Ctrl+C를 누르면 SQL 문 실행이 "종료"될 수 있었습니다. ", 그러나 현재 세션도 종료됩니다. MySQL 5.7은 이러한 반직관적인 기능을 개선하여 더 이상 세션을 종료하지 않습니다.

    • MySQL 5.7은 실행 중인 SQL을 설명할 수 있어 DBA가 실행하는 데 오랜 시간이 걸리는 명령문을 분석하는 데 매우 유용합니다.

    • sys 스키마는 MySQL 5.7.7에 도입된 시스템 라이브러리입니다. 여기에는 일련의 뷰, 함수 및 저장 프로시저가 포함되어 있습니다. 이 프로젝트는 MySQL의 사용 편의성에 중점을 둡니다.

    • 예: 데이터베이스에서 중복 인덱스를 보는 방법, 사용되지 않는 인덱스를 얻는 방법, 전체 테이블 스캔을 사용하여 SQL 문을 보는 방법.

    가용성

    • 온라인 설정 복사된 필터 규칙 더 이상 MySQL을 다시 시작할 필요가 없으며 수정이 완료된 후 SQLthread를 중지하면 됩니다. SQL스레드.

    • 버퍼 풀 크기를 온라인으로 수정하세요.

    • 온라인 DDL MySQL 5.7은 인덱스 이름 변경 및 varchar 크기 수정을 지원합니다. 이전 버전에서는 두 작업 모두 인덱스 또는 테이블을 다시 작성해야 했습니다.

    • 이전 버전에서는 GTID가 온라인으로 지원되지 않았기 때문에 사용자가 하위 버전의 데이터베이스를 GTID를 지원하는 데이터베이스 버전으로 업그레이드하려면 데이터베이스를 닫아야 합니다. 먼저 GTID 모드에서 시작하므로 업그레이드가 특히 까다롭습니다.

    성능

    • 임시 테이블의 성능이 개선되었습니다.

      임시 테이블은 현재 세션에서만 볼 수 있습니다.

      임시 테이블의 수명 주기는 현재 연결입니다(MySQL이 다운되거나 다시 시작되면 현재 연결이 종료됩니다)

    • 읽기 전용 트랜잭션 성능이 향상되었습니다.

      MySQL 5.7은 읽기 전용 트랜잭션에 대한 트랜잭션 ID 할당을 방지하고, 읽기 전용 트랜잭션에 롤백 세그먼트를 할당하지 않고, 잠금 경쟁을 줄여 읽기 전용 트랜잭션의 오버헤드를 최적화하고 데이터베이스의 전반적인 성능을 향상시킵니다. .

      연결 처리 속도를 높입니다.

      MySQL 5.7 이전에는 연결 수신 스레드에서 변수(THD, VIO)의 초기화 작업이 완료되었으나 이제는 이러한 작업을 작업 스레드로 보내 연결 수신 스레드의 작업량을 줄이고 처리 성능을 향상시켰습니다. 연결 속도. 이 최적화는 짧은 연결을 자주 설정하는 애플리케이션에 매우 유용합니다.

    • 복제 성능 향상(멀티 스레드 복제 지원(Multi-Threaded Slaves, MTS라고 함))

      MySQL의 기본 구성은 병렬 복제입니다. MySQL 5.7의 병렬 복제 기능을 최대한 활용하려면 LOGICAL_CLOCK에 슬레이브 병렬 유형을 구성해야 합니다. >

      엄격성 ​​변경
    • 활성화 STRICT_TRANS_TABLES 모드는 기본적으로

    ONLY_FULL_GROUP_BY 모드에 대해 더 복잡한 기능 지원이 구현되며
    • 다른 SQL 모드도 활성화되어 있습니다. 기본적으로 NO_ENGINE_SUBSTITUTION이 포함됩니다.
    • 기본 매개변수 변경

    • 기본 binlog 형식이 ROW 형식으로 조정됩니다.

    기본값 binlog 오류 동작은 ABORT_SERVER로 조정됩니다

    이전 옵션(binlog_error_action=IGNORE_ERROR)에서 오류가 발생하고 binlog를 쓸 수 없는 경우 mysql-server는 해당 오류를 오류 로그에 기록하고 강제로 종료합니다. binlog 기능을 사용하면 mysql-server가 binlog를 기록하지 않는 모드로 계속 실행되어 슬레이브 라이브러리가 계속해서 라이브러리의 Binlog를 얻을 수 없게 됩니다.
      mysql 충돌 시 binlog 보안을 활성화합니다.
    • 기본적으로slave_net_timeout을 줄입니다. >
    • 설치가 다릅니다

      mysql_install_db는 더 이상 없습니다. 권장됩니다. 인스턴스 초기화를 완료하려면 mysqld --initialize로 변경하는 것이 좋습니다. datadir이 가리키는 대상 디렉터리에 이미 데이터 파일이 있으면 [ERROR] Aborting;

      이 발생합니다.
    • 초기화 시 --initial-insecure를 추가하면 비밀번호가 비어 있는 root@localhost 계정이 생성되고, 그렇지 않으면 비밀번호가 포함된 root@localhost 계정이 생성되고 비밀번호는 로그에 직접 기록됩니다. 오류 로그 파일에서 새로운 사용자는 로그인 후 즉시 비밀번호를 변경해야 합니다. 그렇지 않으면 작업을 계속할 수 없습니다.

    위 내용은 Mysql5.5&Mysql5.6&Mysql5.7 기능에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!




    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.