제1장 MySQL 5.6 새로운 기능
이 섹션에서는 MySQL 5.6에서 추가 된 기능, 사용되지 않는 기능 및 제거 된 기능을 요약하고 있습니다.
추가 된 기능
다음 기능은 MySQL 5.6에 추가되었습니다.
보안 개선 아래 내용의 보안 개선이 이루어졌습니다.
MySQL에
.mylogin.cnf
라는 옵션 파일에 인증서를 암호화하여 저장하는 방법을 제공했습니다. 이 파일을 작성하려면 mysql_config_editor 유틸리티를 사용합니다. MySQL 클라이언트 프로그램이 나중에이 파일을 읽어서 MySQL Server에 연결하기위한 인증서를 취득 할 수 있습니다. mysql_config_editor 암호화를 사용하여.mylogin.cnf
파일을 만들기위한 인증서는 평문으로 저장되지 않고, 그 내용은 클라이언트 프로그램이 해독되면 메모리 내에서만 사용됩니다. 이렇게 암호는 일반 텍스트가 아닌 형식의 파일로 저장할 수 명령 줄이나 환경 변수에서 표시 할 필요도없고 나중에 사용할 수 있습니다. 자세한 내용은 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오.MySQL은 SHA-256 암호 해싱을 구현하는
sha256_password
라는 인증 플러그인을 통해 사용할 수있는 사용자 계정 암호보다 강력한 암호화를 지원하게되었습니다. 이 플러그인은 내장되어 있기 때문에 항상 사용할 수 명시 적으로로드 할 필요가 없습니다. SHA-256 암호를 사용하는 계정을 작성하는 방법 등의 자세한 내용은 섹션 6.3.8.4 "SHA-256 인증 플러그인" 을 참조하십시오.mysql.user
테이블에password_expired
컬럼이 추가되었습니다. 디폴트 값은'N'
이지만, 새로운ALTER USER
문에서'Y'
로 설정 할 수 있습니다. 계정의 암호가 만료 된 후 그 계정을 사용하여 서버에 대한 후속 연결 작업을 수행하면 사용자가SET PASSWORD
문을 발행하여 새 계정 암호를 설정할 때까지 모든 경우에서 오류가 발생합니다. 자세한 내용은 섹션 13.7.1.1 "ALTER USER 구문" 및 섹션 6.3.6 "암호 만료 및 샌드 박스 모드" 를 참조하십시오.MySQL에 암호 보안 체크 대책이되었습니다.
평문 값으로 지정되는 암호를 할당 문에서 값은 현재의 암호 정책과 비교하여 검사하고 약한 경우 거부됩니다 (문
ER_NOT_VALID_PASSWORD
오류를 반환합니다). 이것은CREATE USER
,GRANT
및SET PASSWORD
문에 영향을줍니다.PASSWORD()
및OLD_PASSWORD()
함수의 인수로 지정되는 암호도 검사됩니다.비밀번호 후보의 강도는 새로운
VALIDATE_PASSWORD_STRENGTH()
SQL 함수를 사용하여 평가할 수 있습니다. 이것은 암호 인수를 취득 해, 0 (약한)에서 100 (강한)의 정수를 반환합니다.
두 가지 기능은
validate_password
플러그인 구현됩니다. 자세한 내용은 섹션 6.1.2.6 "비밀번호 확인 플러그인" 을 참조하십시오.mysql_upgrade은 4.1 이전의 오래된 해싱 방법으로 해시 된 암호를 가진 사용자 계정을 찾으면 경고를 발하게되었습니다. 이러한 계정은보다 안전한 암호 해싱을 사용하도록 업데이트해야합니다. 섹션 6.1.2.4 "MySQL에서 암호 해시" 를 참조하십시오.
Unix 플랫폼에서는 mysql_install_db는보다 안전한 MySQL 설치를 실현하는 새로운 옵션 인
--random-passwords
를 지원합니다.--random-passwords
으로 mysql_install_db를 호출하면 임의의 암호가 MySQLroot
계정에 할당 이러한 계정에 "만기 비밀번호"플래그가 설정된 익명 사용자 MySQL 계정이 삭제됩니다. 자세한 내용은 섹션 4.4.3 "mysql_install_db - MySQL 데이터 디렉토리 초기화" 를 참조하십시오.패스워드가 그대로 일반 쿼리 로그, 슬로우 쿼리 로그 및 바이너리 로그에 기록 된 문에 표시되지 않도록 로깅이 변경되었습니다. 섹션 6.1.2.3 "암호 및 로깅" 을 참조하십시오.
mysql 클라이언트는 암호를 참조하는 기록 파일 문에 기록하지 않게되었습니다. 섹션 4.5.1.3 "mysql 로그" 를 참조하십시오.
START SLAVE
구문은 마스터에 연결하는 연결 매개 변수를 지정할 수 있도록 변경되었습니다. 이것은master.info
파일에 암호를 저장하는 대체 방법입니다. 섹션 13.4.2.5 "START SLAVE 구문" 을 참조하십시오.
MySQL Enterprise 감사 로그 플러그인에서 생성 된 파일의 형식은 Oracle Audit Vault와의 호환성이 높아지도록 변경되었습니다. 섹션 6.3.12 "MySQL Enterprise Audit 로그 플러그인" 및 섹션 6.3.12.3 "감사 로그 파일" 을 참조하십시오.
MySQL Enterprise Edition은 SQL 레벨에서 OpenSSL 기능을 제공하고있다 OpenSSL 라이브러리를 기반으로 일련의 암호화 기능이 포함되게되었습니다. 이 함수를 사용하여 엔터프라이즈 응용 프로그램이 다음 작업을 수행 할 수 있습니다.
공개 키 비대칭 암호화 방식을 사용하여 추가 데이터 보호 구현
공개 키, 개인 키 및 디지털 서명의 생성
비대칭 암호화 비대칭 암호 해독 실행
디지털 서명 및 데이터 검증 및 유효성에 대한 암호화 해시 사용
자세한 내용은 섹션 12.17 "MySQL Enterprise Encryption 기능" 을 참조하십시오.
MySQL Enterprise Edition에 포함 된 감사 로그 플러그인은 사용자 계정 및 이벤트 상태에 따라 감사 이벤트를 필터링하는 기능이 포함되었습니다. 여러 새로운 시스템 변수는 DBA 필터링 제어를 제공합니다. 또한 여러 상태 변수를 추가하여 감사 로그 플러그인 보고서 기능이 개선되었습니다. 자세한 내용은 섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 및 섹션 6.3.12.7 "감사 로그 플러그인의 상태 변수" 를 참조하십시오.
서버 기본 변경 MySQL 5.6.6 이후에서는, MySQL Server의 몇 가지 기본 매개 변수가 이전 릴리스의 기본값과 다를 수 있습니다. 이러한 변화의 목적은 초기 설정 상태에서 뛰어난 성능을 제공하며, 데이터베이스 관리자가 설정을 수동으로 변경할 필요성을 낮추는 것입니다. 자세한 내용은 섹션 5.1.2.1 "서버의 기본값으로 변경" 을 참조하십시오.
InnoDB의 확장 다음
InnoDB
의 확장 기능이 추가되었습니다.InnoDB
테이블에FULLTEXT
인덱스를 만들고MATCH() ... AGAINST
구문을 사용하여 해당 쿼리를 실행할 수 있습니다. 이 기능은 새로운 근사 검색 연산자 (@
)와 몇 가지 새로운 구성 옵션 및INFORMATION_SCHEMA
테이블이 포함됩니다. 자세한 내용은 섹션 14.2.13.3 "FULLTEXT 인덱스" 를 참조하십시오.테이블을 복사하지 않고 테이블에 삽입, 업데이트 및 삭제를 차단하지 않고 또는 둘 모두를 실시하지 않고, 여러
ALTER TABLE
작업을 수행 할 수 있습니다. 이러한 확장은 정리하여 온라인 DDL 이라고합니다. 자세한 내용은 섹션 14.11 "InnoDB와 온라인 DDL" 를 참조하십시오.InnoDB
는 MySQL 데이터 디렉토리 외의 장소에서InnoDB
file-per-table 테이블 공간 (.ibd
파일)을 만들 수 있도록하는CREATE TABLE
문DATA DIRECTORY='
어구를 지원하게되었습니다. 이 확장 기능은 서버 환경에 따라 적절하게 충족시키는 위치에 file-per-table 테이블 공간을 만들 수있는 유연성을 제공합니다. 예를 들어, 사용중인 테이블을 SSD 장치에 또는 큰 테이블을 대용량 HDD 장치에 저장할 수 있습니다.directory
'자세한 내용은 섹션 14.5.4 "테이블 공간의 위치 지정" 을 참조하십시오.
InnoDB
는 "트랜스 휴대용 테이블 공간 '의 개념을 지원하게되고, 버퍼 된 데이터 진행중인 트랜잭션 및 공간 ID 및 LSN 등의 내부 관리 정보에 의해 불일치와 불일치가 발생하지 않고 실행 의 MySQL 인스턴스에서 file-per-table 테이블 공간 (.ibd
파일)을 내보내고 다른 실행중인 인스턴스에 가져올 수 있습니다.FLUSH TABLE
명령FOR EXPORT
절은 저장되지 않은 모든 변경 사항을InnoDB
버퍼 메모리에서.ibd
파일에 기록합니다..ibd
파일과 개별 메타 데이터 파일을 다른 서버로 복사 한 뒤,ALTER TABLE
문DISCARD TABLESPACE
절과IMPORT TABLESPACE
절이 다른 MySQL 인스턴스 테이블 데이터를 가져 오는 데 사용됩니다.이 확장 기능은 서버 환경에 따라 적절하게 준수 할 수 있도록 file-per-table 테이블 공간을 자유롭게 이동할 수있는 유연성을 제공합니다. 예를 들어, 사용중인 테이블을 SSD 장치에 또는 큰 테이블을 대용량 HDD 장치에 이동할 수 있습니다. 자세한 내용은 섹션 14.5.5 "테이블 공간의 다른 서버로 복사 (이동 가능한 테이블 스페이스)" 를 참조하십시오.
비 압축 테이블
InnoDB
페이지 크기 를 기본 16K 바이트를 대체 크기로 8K 바이트 또는 4K 바이트로 설정 할 수있게되었습니다. 이 설정은innodb_page_size
구성 옵션으로 제어됩니다. 이 크기는 MySQL 인스턴스를 만들 때 지정합니다. 인스턴스 내의 모든InnoDB
테이블 스페이스 는 동일한 페이지 크기를 공유합니다. 페이지 크기가 작아지면, 워크로드 및 저장 장치와의 조합, 특히 블록 크기의 작은 SSD 장치와의 조합에 대해 중복 또는 비효율적 인 I / O를 회피 할 수있게됩니다.적응 형 플래시 알고리즘에 대한 개선을 통해 다양한 워크로드 에서의 I / O 작업의 효율성과 일관성을 향상시킵니다. 새로운 알고리즘과 기본 구성 값은 대부분의 사용자에게 성능과 동시성을 개선하는 것으로 간주합니다. 고급 사용자는 여러 구성 옵션을 통해 I / O 응답 성을 미세 조정할 수 있습니다. 자세한 내용은 섹션 14.13.1.6 "InnoDB 버퍼 풀의 플래시 튜닝" 을 참조하십시오.
NoSQL 스타일의 API를 통해
InnoDB
테이블에 액세스하는 MySQL 응용 프로그램을 코딩 할 수 있습니다. 이 기능은 대중적 memcached 데몬을 사용하여 키와 값의 쌍에ADD
,SET
,GET
등의 요청을 릴레이합니다. 데이터를 저장하고 검색하는 이러한 간단한 조작으로 쿼리 실행 계획 분석 및 구축 등의 SQL 오버 헤드를 방지 할 수 있습니다. NoSQL API 및 SQL을 통해 동일한 데이터에 액세스 할 수 있습니다. 예를 들어, 빠른 업데이트 및 검색에 NoSQL API를 복잡한 쿼리 및 기존 응용 프로그램과의 호환성에 SQL을 사용할 수 있습니다. 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.InnoDB
테이블의 최적화 통계는 더 예측 가능한 간격으로 수집 된 서버의 재부팅에 걸쳐 유지할 수 있고, 계획 안정성 이 향상됩니다. 옵티 마이저 통계의 정확도를 높여 쿼리 실행 계획을 개선하도록InnoDB
인덱스에 대해 수행되는 샘플링의 양을 제어 할 수 있습니다. 자세한 내용은 섹션 14.13.16.1 "영구 옵티 마이저 통계 매개 변수 구성" 을 참조하십시오.새로운 최적화는 읽기 전용 트랜잭션 에 적용되며 임시 쿼리 및 보고서 생성 응용 프로그램의 성능과 동시성을 개선합니다. 가능한 경우에는 이러한 최적화가 자동으로 적용됩니다. 또는
START TRANSACTION READ ONLY
를 지정하여 트랜잭션이 읽기 전용이되도록 할 수 있습니다. 자세한 내용은 섹션 14.13.14 "InnoDB의 읽기 전용 트랜잭션 최적화" 를 참조하십시오.InnoDB
Undo 로그 를 시스템 테이블 공간 에서 하나 이상의 개별 테이블 스페이스 로 이동할 수 있습니다. Undo 로그 I / O 패턴은 하드 디스크 스토리지 시스템 테이블 공간을 유지하면서 이러한 새로운 테이블 공간을 SSD 스토리지로 이동하는 적절한 후보로합니다. 자세한 내용은 섹션 14.5.6 "별도의 테이블 스페이스에 InnoDB Undo 로그 저장" 을 참조하십시오.빠른 체크섬 알고리즘을 사용하는 구성 옵션
innodb_checksum_algorithm=crc32
을 지정함으로써InnoDB
체크섬 기능의 효율성을 높일 수 있습니다. 이 옵션은innodb_checksums
옵션을 대체합니다. 이전 체크섬 알고리즘 (옵션 값innodb
)를 사용하여 기록 된 데이터는 완전히 상위 호환성이 있습니다. 새로운 체크섬 알고리즘 (옵션 값crc32
)를 사용하여 변경된 테이블 공간은innodb_checksum_algorithm
옵션을 지원하지 않는 이전 버전의 MySQL로 다운 그레이드 할 수 없습니다.InnoDB
Redo 로그 파일의 최대 전체 크기는 4G 바이트 512G 바이트로 증가했습니다.innodb_log_file_size
옵션에 더 큰 값을 지정할 수 있습니다. 기존의 Redo 로그 파일의 크기가innodb_log_file_size
및innodb_log_files_in_group
에 지정된 크기와 일치하지 않는 상황을 시작 동작에서 자동 처리하게되었습니다.--innodb-read-only
옵션을 사용하면 MySQL Server를 읽기 전용 모드로 실행할 수 있습니다. DVD 나 CD 같은 읽기 전용 미디어에서InnoDB
테이블에 액세스 할 동일한 데이터 디렉토리를 공유하는 여러 인스턴스를 포함하는 데이터웨어 하우스를 설정할 수 있습니다. 사용법 자세한 내용은 섹션 14.3.1 "읽기 전용 작업에 대한 InnoDB의 구성" 을 참조하십시오.새로운 구성 옵션
innodb_compression_level
에서는zlib
에서 사용하는 0-9의 범위에서InnoDB
압축 테이블 압축 수준을 선택할 수 있습니다. 업데이트 작업으로 인해 페이지가 다시 압축 될 때 버퍼 풀의 압축 페이지가 Redo 로그에 저장되는지 여부를 제어 할 수 있습니다. 이 동작은innodb_log_compressed_pages
구성 옵션으로 제어됩니다.InnoDB
압축 테이블의 데이터 블록에는 일정량의 빈 공간 (패딩)가 포함되어 DML 작업은 새 값을 다시 압축하지 않고 행 데이터를 변경할 수 있습니다. 패딩이 너무 많으면 큰 변경 후 데이터를 다시 압축 할 필요가있을 때 압축이 실패 할 가능성이 증가하고, 페이지 분할이 필요할 수 있습니다. 패딩의 양을 동적으로 조정할 수있게 되었기 때문에, DBA는 새로운 파라미터로 테이블 전체를 다시 만들거나 페이지 크기가 다른 인스턴스 전체를 다시 만들 필요없이 압축 실패의 비율을 감소 수있게되었습니다. 관련한 새로운 구성 옵션은innodb_compression_failure_threshold_pct
,innodb_compression_pad_pct_max
입니다.여러 새로운
InnoDB
관련INFORMATION_SCHEMA
테이블은InnoDB
버퍼 풀에 대한 정보 테이블, 인덱스 및InnoDB
데이터 사전에서 외래 키에 대한 메타 데이터 성능 스키마 테이블에서 정보를 보완하는 성능 메트릭에 대한 낮은 수준 정보를 제공 합니다.수많은 테이블이있는 시스템에서의 메모리로드를 쉽게하기 위해,
InnoDB
는 가장 오랫동안 사용되지 않고 경과 한 테이블을 선택하는 LRU 알고리즘을 사용하여 열려있는 테이블과 연관된 메모리를 확보하게되었습니다. 열린InnoDB
테이블의 메타 데이터를 유지하기 위해 더 많은 메모리를 예약하려면table_definition_cache
구성 옵션의 값을 늘리십시오.InnoDB
는InnoDB
데이터 사전 캐시에 열려있는 테이블 인스턴스의 수에 대한 "소프트 제한"으로이 값을 취급합니다. 추가 정보는table_definition_cache
문서를 참조하십시오.InnoDB
는 커널 뮤텍스의 분할에 의한 경쟁 완화, 메인 스레드에서 별도의 스레드에 플래시 작업 이동 여러 퍼지 스레드의 활성화, 대용량 메모리 시스템에서 버퍼 풀의 경쟁 완화 등의 여러 내부 성능 확장 기능이 있습니다.InnoDB
는 빠른 새로운 알고리즘을 사용하여 deadlocks 을 감지합니다. 모든InnoDB
교착 상태에 대한 정보는 MySQL Server 오류 로그에 쓸 수 응용 프로그램 문제를 진단하는 데 도움이됩니다.서버 재부팅 후 장시간 워밍업 을 피하기 위해 특히 큰
InnoDB
버퍼 풀 을 수반 인스턴스의 경우 재부팅 직후에 버퍼 풀 페이지를 다시로드 할 수 있습니다. MySQL은 종료시 간단한 데이터 파일을 덤프 한 다음 그 데이터 파일을 참조하여 다음 재부팅시 다시로드 페이지 를 찾을 수 있습니다. 벤치마킹 중이나 복잡한 보고서 생성 쿼리 후 등 언제든지 버퍼 풀을 수동으로 덤프 또는 다시로드 할 수 있습니다. 자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.MySQL 5.6.16 이후 innochecksum은 2G 바이트 이상 크기의 파일 지원에 대응하고 있습니다. 이전에는 innochecksum은 2G 바이트 크기의 파일 만 지원했습니다.
MySQL 5.6.16 이후에서는 새로운 글로벌 구성 매개 변수
innodb_status_output
및innodb_status_output_locks
를 사용하면 표준InnoDB
Monitor 및InnoDB
Lock Monitor를 동적으로 활성화 및 비활성화 할 수 있습니다. 특별한 이름이 붙은 테이블을 만들고 삭제하여 정기적으로 출력 모니터를 활성화 및 비활성화하는 방법은 비추천이며 이후 릴리스에서 제거 될 수 있습니다. 자세한 내용은 섹션 14.15 "InnoDB 모니터" 를 참조하십시오.MySQL 5.6.17 이후, MySQL은 다음 작업에 온라인 DDL (
ALGORITHM=INPLACE
)를 사용한 일반 파티션 된InnoDB
테이블의 재구성을 지원합니다.OPTIMIZE TABLE
ALTER TABLE ... FORCE
ALTER TABLE ... ENGINE=INNODB
(InnoDB
테이블에서 수행 한 경우)
온라인 DDL 지원을 통해 테이블 재구성 시간을 단축하고 사용자 애플리케이션 다운 타임 단축에 도움 병렬 DML이 가능합니다. 자세한 내용은 섹션 14.11.1 "온라인 DDL 개요" 를 참조하십시오.
분할 다음의 테이블 파티셔닝 기능이 추가되었습니다.
파티션의 최대 수는 8192까지 증가하고 있습니다. 이것은 테이블의 모든 파티션과 모든 하위 파티션을 포함한 숫자입니다.
ALTER TABLE ... EXCHANGE PARTITION
문을 사용하여 파티션 된 테이블의 파티션 또는 서브 파티션 된 테이블의 하위 파티션을 분할되지 않은 것을 제외하고 동일한 구조의 테이블과 교환 할 수 있도록 되었습니다. 이것은 예를 들어, 파티션의 가져 오기 및 내보내기에 사용할 수 있습니다. 자세한 내용 및 예제는 섹션 19.3.3 "파티션과 서브 파티션 테이블로 교체" 를 참조하십시오.파티션 된 테이블에서 기능하는 쿼리 나 다수의 데이터 변경 명령문에서 하나 이상의 파티션 또는 서브 파티션의 명시적인 선택이 지원되게되었습니다. 예를 들어, 정수 컬럼
c
를 포함하는 테이블t
에p0
,p1
,p2
및p3
라는 4 개의 파티션이 있다고합니다. 이 경우 쿼리SELECT * FROM t PARTITION (p0, p1) WHERE c < 5
파티션p0
및p1
에서c
가 5 미만인 행만 반환합니다.다음 문은 명시 적 파티션 선택을 지원합니다.
SELECT
DELETE
INSERT
REPLACE
UPDATE
LOAD DATA
.LOAD XML
.
구문에 대해서는 개별 문의 설명을 참조하십시오. 추가 정보 및 예제는 섹션 19.5 "파티션 선택" 을 참조하십시오.
파티션 잠금 가지 치기는 많은 파티션을 포함하는 테이블에서 작동하는 다수의 DML 및 DDL 문의 성능을 크게 향상 시키지만, 이것은 이러한 진술의 영향을받지 않는 파티션에서 잠금을 제거 할 수 있도록 함으로써 실시합니다. 이러한 문은
SELECT
,SELECT ... PARTITION
,UPDATE
,REPLACE
,INSERT
등의 다수의 문이 포함됩니다. 이 결과 성능이 개선 된 문 전체 목록 등 자세한 내용은 섹션 19.6.4 "파티셔닝 및 잠금" 을 참조하십시오.
성능 스키마 성능 스키마에는 다음과 같은 여러 가지 새로운 기능이 포함되어 있습니다.
테이블 입력 및 출력의 계측. 악기 된 작업은 영구 기본 테이블 또는 임시 테이블에 행 레벨의 액세스가 포함됩니다. 행에 영향을주는 작업은 페치, 삽입, 업데이트 및 삭제합니다.
스키마 또는 테이블 이름에 따라 테이블에서 이벤트 필터링.
스레드에서 이벤트 필터링. 스레드에 대한 자세한 수집됩니다.
테이블 및 인덱스 I / O와 테이블 잠금에 대한 요약 테이블.
문과 문에서 스테이지의 계측.
서버가 시작될 때의 악기와 소비자의 구성. 이전에는 실행시에만 가능했습니다.
MySQL Cluster MySQL Cluster는 별도의 제품으로 출시됩니다. 최신 GA 릴리스는 MySQL 5.6에 따라 버전 7.3의
NDB
스토리지 엔진을 사용하고 있습니다. 클러스터링 지원 주요 MySQL Server 5.6 릴리스에서 사용할 수 없습니다. MySQL Cluster NDB 7.3의 자세한 내용은 18 장 "MySQL Cluster NDB 7.3 및 MySQL Cluster NDB 7.4" 을 참조하십시오. 최신 개발 버전은 버전 7.4의NDB
스토리지 엔진과 MySQL Server 5.6을 기반으로 MySQL Cluster NDB 7.4입니다. 현재 MySQL Cluster NDB 7.4은 테스트 및 평가를 위해 사용할 수 있습니다. 최신 MySQL Cluster NDB 7.4 릴리스는 http://dev.mysql.com/downloads/cluster/ 에서 구할 수 있습니다.자세한 내용과 MySQL Cluster NDB 7.4에서 열린 개선 개요는 섹션 18.1.4.2 "MySQL Cluster NDB 7.4에서 MySQL Cluster의 개발" 을 참조하십시오.
이전 GA 버전 인 MySQL Cluster NDB 7.2은 MySQL Server 5.5에 따라 아직 출시되지 이용 가능하지만 새로운 배치는 MySQL Cluster NDB 7.3을 사용하는 것이 좋습니다. MySQL Cluster NDB 7.2의 자세한 내용은 MySQL Cluster NDB 7.2 을 참조하십시오.
MySQL Cluster NDB 7.1도 여전히 사용할 수 지원합니다 (그러나 새로운 배치는 최신 GA 릴리즈 시리즈, 현재는 MySQL Cluster NDB 7.3을 사용하는 것이 좋습니다). 이 버전의 MySQL Cluster는 MySQL Server 5.1을 기반으로하며, "MySQL 5.1 설명서"에 기재되어 있습니다. 자세한 내용은 https://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html 를 참조하십시오.
복제 및 로깅 다음 복제 확장 기능이 추가되었습니다.
MySQL은 글로벌 트랜잭션 식별자 ( "GTID"라고도합니다)를 사용한 트랜잭션 기반 복제를 지원하게되었습니다. 이로 인해 발신 서버에서 커밋 된 하나의 슬레이브에 의해 적용된 경우 각 트랜잭션 식별 및 추적이 가능합니다.
복제 설정 GTID을 사용하는 경우 주로
--gtid-mode
및--enforce-gtid-consistency
의 새 서버 옵션을 사용하여 수행합니다. GTID 지원에서 도입 된 추가 옵션 및 변수의 자세한 내용은 섹션 17.1.4.5 "글로벌 트랜잭션 ID 옵션과 변수" 를 참조하십시오.GTID을 사용하면 새 슬레이브를 시작하거나 새 마스터로 페일 오버 할 때 로그 파일과이 파일에서의 위치를 참조 할 필요가 없습니다. 따라서 이러한 작업이 매우 단순화됩니다. 바이너리 로그 파일을 참조하거나 참조하지 않고 GTID 복제에 서버를 프로비저닝하는 경우 자세한 내용은 섹션 17.1.3.3 "페일 오버 및 확장에 GTID 사용" 을 참조하십시오.
GTID 기반 복제는 완전히 트랜잭션 기반이기 때문에 마스터와 슬레이브의 일관성 검사가 쉬워집니다. 소정의 마스터에서 커밋 된 모든 트랜잭션이 소정의 슬레이브에서도 커밋되는 경우 두 서버 간의 일관성은 보장됩니다.
MySQL Replication에서 GTID의 구현 및 사용에 관한 자세한 정보가 필요한 경우 섹션 17.1.3 "글로벌 트랜잭션 식별자를 사용한 복제" 를 참조하십시오.
MySQL의 행 기반 복제는 행 이미지 컨트롤을 지원하게되었습니다. 각 행의 변경에 대해 모든 컬럼이 아닌 각 행의 변경을 고유하게 식별하고 실행하는 데 필요한 컬럼만을 기록하여 디스크 용량, 네트워크 리소스 및 메모리 사용량을 절약 할 수 합니다.
binlog_row_image
서버 시스템 변수를minimal
(필요한 컬럼 만 기록),full
(모든 컬럼을 기록)noblob
(불필요한BLOB
또는TEXT
컬럼을 제외한 모든 컬럼을 기록) 중 하나의 값으로 설정 하여 모든 행을 기록하거나 최소한의 행을 기록할지 여부를 지정할 수 있습니다. 자세한 내용은 바이너리 로깅에 사용되는 시스템 변수 를 참조하십시오.MySQL Server에 기록되며 읽을 바이너리 로그는 전체 이벤트 (트랜잭션) 만 기록되거나 다시 읽거나하는 충돌 안전되었습니다. 기본적으로 서버는 이벤트 자체 외에 이벤트의 길이를 기록하고이 정보를 사용하여 이벤트가 제대로 작성되었는지 확인합니다.
binlog_checksum
시스템 변수를 설정하여 서버에서 CRC32 체크섬을 사용하여 이벤트의 체크섬을 기록 할 수 있습니다. 서버에 바이너리 로그에서 체크섬을 읽도록은master_verify_checksum
시스템 변수를 사용합니다.--slave-sql-verify-checksum
시스템 변수는 슬레이브 SQL 쓰레드에 릴레이 로그에서 체크섬을 읽도록합니다.MySQL은 테이블 및 파일에 마스터 연결 정보 로깅 및 슬레이브 릴레이 로그 정보의 로깅을 지원하게되었습니다. 이러한 테이블의 사용은
--master-info-repository
와--relay-log-info-repository
서버 옵션에 따라 개별적으로 제어 할 수 있습니다.--master-info-repository
를TABLE
로 설정하면 연결 정보가slave_master_info
테이블에 기록됩니다.--relay-log-info-repository
를TABLE
로 설정하면 릴레이 로그 정보가slave_relay_log_info
테이블에 기록됩니다. 이러한 테이블은 모두mysql
시스템 데이터베이스에 자동으로 작성됩니다.복제 충돌 안전하려면,
slave_master_info
테이블과slave_relay_log_info
테이블이 각각 트랜잭션 스토리지 엔진을 사용해야합니다. 이러한 이유로, MySQL 5.6.6 이후에서는 이러한 테이블은InnoDB
를 사용하여 작성됩니다. (Bug # 13538891)이 두 테이블에서MyISAM
을 사용하는 이전의 MySQL 5.6 릴리즈를 사용하는 경우, 복제가 충돌 안전하다는 것을 원한다면 복제를 시작하기 전에 두 트랜잭션 스토리지 엔진 (InnoDB
)으로 변환 할 필요가있는 것입니다. 이러한 경우 적절한ALTER TABLE ... ENGINE = ...
문을 사용하여이를 수행 할 수 있습니다. 복제가 실제로 실행하는 동안 이러한 테이블 중 하나가 사용하는 스토리지 엔진을 변경하려고 하지 마십시오.자세한 내용은 충돌 안전 복제 를 참조하십시오.
mysqlbinlog 은 그 원래의 바이너리 형식으로 바이너리 로그를 백업하는 기능을 제공했습니다. mysqlbinlog 은
--read-from-remote-server
옵션과--raw
옵션으로 호출 된 경우 서버에 연결하여 로그 파일을 요청하고 원본 파일과 같은 형식으로 출력 파일을 씁니다. 섹션 4.6.8.3 "바이너리 로그 파일의 백업을위한 mysqlbinlog 사용" 을 참조하십시오.MySQL은 슬레이브 서버가 적어도 지정된 시간만큼 의도적으로 마스터에 늦게 지연 복제를 지원하게되었습니다. 기본 지연 시간은 0 초입니다.
CHANGE MASTER TO
새로운MASTER_DELAY
옵션을 사용하여 지연을 설정합니다.지연 복제는 마스터에서 사용자의 실수로부터 보호하거나 (DBA 지연 노예 재해 직전 시간까지 롤백 할 수 있습니다) 지연이있을 때 시스템의 동작을 테스트하는 등의 목적에 사용 수 있습니다. 섹션 17.3.9 "지연 복제" 를 참조하십시오.
CHANGE MASTER TO
문을 발행 할 때MASTER_BIND
옵션을 사용하여 여러 네트워크 인터페이스가있는 리플리케이션 슬레이브에 이들 중 하나를 사용 당하게되었습니다.log_bin_basename
시스템 변수가 추가되었습니다. 이 변수는 전체 파일 이름과 바이너리 로그 파일의 경로가 포함됩니다.log_bin
시스템 변수는 바이너리 로깅을 사용할 수 있는지 여부 만 보여 주지만log_bin_basename
는--log-bin
서버 옵션에 설정된 이름을 반영합니다.마찬가지로
relay_log_basename
시스템 변수는 파일 이름과 릴레이 로그 파일의 전체 경로를 나타냅니다.MySQL Replication은 슬레이브에서 멀티 스레드를 사용하여 트랜잭션의 병렬 실행을 지원하게되었습니다. 병렬 실행이 유효한 경우, 슬레이브 SQL 쓰레드는
slave_parallel_workers
서버 시스템 변수의 값에 의해 결정되는 다수의 슬레이브 작업자 스레드에 대한 조정 역할을 수행합니다. 슬레이브에서 멀티 스레드의 현재 구현은 데이터와 업데이트가 데이터베이스마다 분할되어 있는지와 소정의 데이터베이스의 업데이트가 마스터의 경우와 같은 상대적 순서로 이루어지는 것을 전제로 있습니다. 그러나 다른 데이터베이스간에 트랜잭션을 조정할 필요가 없습니다. 이 경우 트랜잭션을 데이터베이스마다 할당 할 수 있습니다. 즉, 슬레이브에서 작업자 스레드는 다른 데이터베이스 업데이트가 완료 될 때까지 기다리지 않고 소정의 데이터베이스에서 연속하여 트랜잭션을 처리 할 수 있습니다.별도의 데이터베이스에 대한 트랜잭션은 슬레이브와 마스터에서 실행 순서가 다를 수 있기 때문에 단순히 최근에 실행 된 트랜잭션을 확인하는 것만으로는 마스터에서 이전의 모든 트랜잭션이 슬레이브에서 실행되었다는 보장 이되지 않습니다. 이것은 다중 스레드 된 슬레이브를 사용하는 경우 로깅 및 복구에 영향을줍니다. 슬레이브에서 멀티 스레드를 사용하면 바이너리 로깅 정보를 어떻게 해석해야하는지에 대해서는 섹션 13.7.5.35 "SHOW SLAVE STATUS 구문" 을 참조하십시오.
최적화 확장 쿼리 최적화 프로그램에서 다음의 개선이 구현되었습니다.
최적화 프로그램은 다음과 같은 형식의 쿼리 (및 서브 쿼리)를보다 효율적으로 처리 할 수있게되었습니다.
SELECT ... FROM
single_table
... ORDER BYnon_index_column
[DESC] LIMIT [M
,]N
;이런 종류의 쿼리는 큰 결과 세트의 몇 줄 만 표시하는 Web 어플리케이션에서 일반적인 것입니다. 예 :
SELECT col1, ... FROM t1 ... ORDER BY name LIMIT 10; SELECT col1, ... FROM t1 ... ORDER BY RAND () LIMIT 15;
정렬 버퍼는
sort_buffer_size
의 크기가 포함되어 있습니다.N
행을 정렬하는 요소가 정렬 버퍼 (M
가 지정된 경우M
+N
행)에 들어갈 정도로 작은 경우, 서버는 병합 파일의 사용을 피하고, 메모리 전체에서 정렬을 수행 할 수 있습니다. 자세한 내용은 섹션 8.2.1.19 "LIMIT 쿼리 최적화" 를 참조하십시오.최적화는 Disk-Sweep Multi-Range Read를 구현합니다. 보조 인덱스의 범위 스캔을 사용하여 행을 읽을 때 테이블이 크고, 스토리지 엔진의 캐시에 저장되어 있지 않은 경우, 기본 테이블에 랜덤 디스크 액세스가 다발하는 결과가 될 수 있습니다. Disk-Sweep Multi-Range Read (MRR) 최적화를 사용하면 MySQL은 먼저 인덱스 만 검사하고 해당 행의 열쇠를 수집하여 범위 스캔의 디스크 접근 횟수를 줄이기 위해 노력하고 합니다. 이어 키가 정렬되고 마지막으로 기본 키 순서를 사용하여 기본 테이블에서 행이 검색됩니다. Disk-Sweep MRR의 목적은 디스크 접근 횟수를 줄이고 그 대신 기본 테이블 데이터의 순차적 스캔을 늘리는 것입니다. 자세한 내용은 섹션 8.2.1.13 "Multi-Range Read 최적화" 를 참조하십시오.
최적화는 MySQL이 인덱스를 사용하여 테이블에서 행을 검색하는 경우의 최적화로 Index Condition Pushdown (ICP)를 구현합니다. ICP를 사용하지 않는 경우 스토리지 엔진은 인덱스를 통과하여베이스 테이블에서 행을 검색하고 MySQL Server에 반환하고 MySQL Server가 행에
WHERE
조건을 평가합니다. ICP를 사용하면 인덱스의 필드만을 사용하여WHERE
조건의 부분을 평가할 수있는 경우 MySQL Server는이WHERE
조건의 부분을 스토리지 엔진에 푸시 다운합니다. 스토리지 엔진은 이어 인덱스 항목을 사용하여 푸시 된 인덱스 조건을 평가하고이를이 충족 된 경우에만 기반 행을 읽습니다. ICP는 스토리지 엔진이 기본 테이블에 대해 수행해야하는 액세스 횟수와 MySQL Server가 스토리지 엔진에 대해 수행해야하는 액세스 횟수를 줄일 수 있습니다. 자세한 내용은 섹션 8.2.1.6 "인덱스 조건문 푸시 다운 최적화" 를 참조하십시오.EXPLAIN
문은DELETE
,INSERT
,REPLACE
및UPDATE
문 실행 계획 정보를 제공 할 수있게되었습니다. 이전에는EXPLAIN
은SELECT
문에 대한 정보 만 제공했습니다. 또한EXPLAIN
문은 JSON 형식으로 출력을 생성 할 수있게되었습니다. 섹션 13.8.2 "EXPLAIN 구문" 을 참조하십시오.FROM
절에 서브 쿼리 (즉 파생 테이블)의 최적화에 의한 처리의 효율성이 향상되었습니다.FROM
절의 서브 쿼리의 구체화는 쿼리 실행 중에 그 내용이 필요할 때까지 연기되므로 성능이 향상됩니다. 또한 쿼리 실행에 최적화 파생 테이블에 인덱스를 추가하여 거기에서 행의 취득 속도를 높일 수 있습니다. 자세한 내용은 섹션 8.2.1.18.3 "FROM 절의 서브 쿼리 (파생 테이블)의 최적화" 를 참조하십시오.최적화는 준 결합과 구체화 된 전략을 사용하여 서브 쿼리의 실행을 최적화합니다. 섹션 8.2.1.18 '준 조인 변환에 의한 서브 쿼리의 최적화 " 및 섹션 8.2.1.18 "서브 쿼리 구체화에 의한 서브 쿼리의 최적화" 를 참조하십시오.
결합 된 테이블과 조인 버퍼에 모두 인덱스 액세스를 사용하는 Batched Key Access (BKA) 결합 알고리즘을 사용할 수있게되었습니다. BKA 알고리즘은 중첩 외부 조인과 중첩 준 결합을 포함한 내부 조인, 외부 조인 및 준 병합 작업을 지원합니다. BKA는 테이블 스캔의 효율성 향상에 의한 결합 성능 향상이라는 장점도 있습니다. 자세한 내용은 섹션 8.2.1.14 "Block Nested Loop 조인과 Batched Key Access 결합" 을 참조하십시오.
최적화에 주로 개발자가 사용하는 추적 기능이 탑재되었습니다. 일련의
optimizer_trace_
시스템 변수와xxx
INFORMATION_SCHEMA.OPTIMIZER_TRACE
테이블에서 인터페이스가 제공됩니다. 자세한 내용은 " MySQL Internals : Tracing the Optimizer "를 참조하십시오.
조건 처리 MySQL은
GET DIAGNOSTICS
문을 지원하게되었습니다.GET DIAGNOSTICS
는 이전의 SQL 문이 예외를 생성했는지 여부와 그것이 무엇인지 등의 정보를 진단 영역에서 얻을 수있는 표준화 된 방법을 응용 프로그램에 제공합니다. 자세한 내용은 섹션 13.6.7.3 "GET DIAGNOSTICS 구문" 을 참조하십시오.또한 MySQL의 동작이 표준 SQL에 더욱 유사하도록 조건 핸들러 처리 규칙에서 여러 결함이 수정되었습니다.
선택 핸들러를 결정할 때 블록 범위가 사용됩니다. 이전에 저장된 프로그램이 핸들러 선택의 단일 범위를 가지는 것으로 간주되어있었습니다.
조건의 우선 순위는 더 정확하게 해결되게되었습니다.
진단 영역의 클리어가 변경되었습니다. Bug # 55843에 대한 핸들러를 사용하기 전에 처리되는 조건이 진단 영역에서 지워졌습니다. 그러면 조건의 정보를 핸들러에서 사용할 수 없게되어있었습니다. 현재 조건 정보는 핸들러에서 사용할 수 처리기는
GET DIAGNOSTICS
문이 정보를 확인할 수 있습니다. 핸들러의 실행 중에 아직 제거되지 않은 조건 정보는 핸들러가 종료 할 때 클리어됩니다.이전에는 핸들러는 조건이 발생하면 즉시 적용되어있었습니다. 현재 조건이 발생한 문 실행이 끝날 때까지 적용되지 않고 종료 한 시점에서 가장 적절한 핸들러가 선택되게되었습니다. 이것은 문 실행 중에 나중에 발생 조건이 그 전에 발생한 조건보다 높은 우선 순위를 가지고 어떤 조건 핸들러도 같은 범위에있는 경우, 여러 조건을 발생시키는 문에 영향을 수 있습니다. 이전에는 먼저 발생한 조건의 핸들러가 다른 핸들러보다 우선 순위가 낮은 경우에도 선택되어있었습니다. 현재 우선 순위가 가장 높은 조건의 핸들러가 문에서 먼저 발생 조건이 아닌 경우에도 선택되게되었습니다.
자세한 내용은 섹션 13.6.7.6 "핸들러의 범위에 관한 규칙" 을 참조하십시오.
데이터 형식 다음 데이터 형식 변경이 구현되었습니다.
MySQL에서는 마이크로 초 (6 자리)까지의 정확도를 가진
TIME
,DATETIME
, 그리고TIMESTAMP
값의 소수 초에 대응할 수있게되었습니다. 섹션 11.3.6 "시간 값의 소수 초" 를 참조하십시오.이전에는 테이블 당 최대 하나의
TIMESTAMP
컬럼을 자동으로 초기화하거나 현재 날짜와 시간에 업데이트 할 수있었습니다. 이 제한은 철폐되었다. 어떤TIMESTAMP
컬럼 정의는DEFAULT CURRENT_TIMESTAMP
절 및ON UPDATE CURRENT_TIMESTAMP
절 조합을 지정할 수 있습니다. 또한이 조항은DATETIME
컬럼 정의에서 사용할 수있게되었습니다. 자세한 내용은 섹션 11.3.5 "TIMESTAMP 및 DATETIME 자동 초기화 및 업데이트 기능" 을 참조하십시오.MySQL은
TIMESTAMP
데이터 유형은 자동 초기화 및 업데이트 속성의 기본값으로 할당 측면에서 다른 데이터 유형과 비표준적인 방법으로 다릅니다. 이러한 동작은 기본 남아 있지만 현재 비추천이되어있어 서버를 시작할 때explicit_defaults_for_timestamp
시스템 변수를 사용하여 해제 할 수 있습니다. 섹션 11.3.5 "TIMESTAMP 및 DATETIME 자동 초기화 및 업데이트 기능" 및 섹션 5.1.4 "서버 시스템 변수" 를 참조하십시오.
호스트 캐시 MySQL은 클라이언트가 서버에 연결할 때 발생한 오류 원인에 대한 자세한 정보가 제공되도록 됨과 동시에 클라이언트 IP 주소와 호스트 이름 정보를 포함 DNS 조회를 방지하기 위해 사용되는 호스트 캐시에 대한 액세스가 개선되었습니다. 다음 사항이 구현되었습니다.
새로운
Connection_errors_
상태 변수는 특정 클라이언트 IP 주소에 적용되지 않은 연결 오류에 대한 정보를 제공합니다.xxx
특정 IP 주소에 적용되는 오류를 추적하기 위해 호스트 캐시 카운터가 추가되어 새로운
host_cache
성능 스키마 테이블이SELECT
문을 사용하여 검사 할 수 있도록 호스트 캐시의 내용을 공개합니다. 호스트 캐시의 내용에 액세스 할 때 얼마나 많은 수의 호스트가 캐시되어 있는지, 어떤 호스트에 어떤 종류의 연결 오류가 발생하거나 호스트 오류 횟수가max_connect_errors
시스템 변수의 상한에 얼마나 가까이 있는지 등의 질문에 답변 할 수 있습니다.호스트 캐시 크기는
host_cache_size
시스템 변수를 사용하여 구성 할 수있게되었습니다.
자세한 내용은 섹션 8.11.5.2 "DNS 조회 최적화 및 호스트 캐시 ' 및 섹션 22.9.10.1 "host_cache 테이블" 을 참조하십시오.
OpenGIS OpenGIS 사양은 2 개의 기하 값의 관계를 테스트하는 함수를 정의합니다. MySQL은 당초 개체 바운딩 사각형을 사용하여 해당 MBR 기반의 함수와 같은 결과를 반환하도록 이러한 기능을 구현했습니다. 정확한 객체의 모양을 사용하는 해당 버전을 사용할 수있게되었습니다. 이 버전의 이름은
ST_
접두어를 붙일 수 있습니다. 예를 들어,Contains ()
는 객체 바인딩 구형을 사용하지만ST_Contains ()
는 객체 형상을 사용합니다. 자세한 내용은 섹션 12.15.9 "기하 객체 간의 공간 관계를 테스트하는 함수" 를 참조하십시오.
사용되지 않는 기능
다음 기능은 MySQL 5.6에서 사용되지 않으며 추후 릴리스에서 제거 될 수 또는 예정입니다. 다른 옵션이 있으면 그것을 이용하기 위해 응용 프로그램을 업데이트해야합니다.
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
및NO_ZERO_IN_DATE
의 SQL 모드는 사용되지 않으며,이 중 하나를 포함하도록sql_mode
값을 설정하면 경고가 생성됩니다. MySQL 5.7에서는이 모드는 아무것도 실시하지 않습니다. 대신, 그 효과는 엄격한 SQL 모드 (STRICT_ALL_TABLES
또는STRICT_TRANS_TABLES
)의 효과에 포함됩니다. MySQL 5.7에서 변경의 목적은 효과가 엄밀 모드에 의존하는 SQL 모드의 수를 줄이고 이들을 엄격 모드 자체의 일부가 될 것입니다.MySQL 5.7으로 업그레이드 고급 준비를하려면 SQL Mode Changes in MySQL 5.7 을 참조하십시오. 그 설명은 응용 프로그램이 MySQL 5.7에서 SQL 모드의 변경에 의해 영향을 받는지 여부를 평가하기위한 지침이 표시됩니다.
MySQL 5.6에서 암시 적
GROUP BY
정렬에 의존는 비추천되어 있습니다. 그룹화 된 결과 특정 정렬 순서를 실현하려면 명시 적ORDER BY
절을 사용하는 것이 좋습니다.GROUP BY
정렬 예를 들어, 최적화가 가장 효율적이라고 생각 어떠한 방법으로도 그룹화를 지시 할 수있게하거나 정렬 오버 헤드를 방지하는 데 등에 향후 릴리스에서 변경 될 수 성있는 MySQL 확장 기능입니다.4.1 이전 암호와
mysql_old_password
인증 플러그인. MySQL 4.1 이전에서 사용되는 오래된 해시 형식으로 저장되어있는 암호는 기본 암호 해시 방식을 사용하는 암호보다 안전하지 않기 때문에 사용하지 않도록하십시오. 4.1 이전 암호와mysql_old_password
인증 플러그인이 사용되지 않습니다했습니다. 4.1 이전 암호 해시를 가진 계정을 사용하여 연결하는 것을 방지하기 위해secure_auth
시스템 변수는 기본적으로 활성화되었습니다. (이러한 암호 해시를 가진 계정에 접속을 허용하려면--secure_auth = 0
을 사용하여 서버를 시작하십시오. 그러나 4.1 이전의 암호는 비추천이기 때문에secure_auth
을 비활성화 할 수도 비추천입니다.)데이터베이스 관리자는
mysql_old_password
인증 플러그인을 사용하는 계정을 대신mysql_native_password
를 사용하도록 변환하는 것이 좋습니다됩니다. 계정 업그레이드 지침은 섹션 6.3.8.3 "4.1 이전 암호 해시 방식과 mysql_old_password 플러그인에서 마이그레이션" 을 참조하십시오.OLD_PASSWORD ()
함수는 4.1 이전 암호 해시를 생성하지만, 이것은old_passwords
시스템 변수가 1로 설정되어있는 경우PASSWORD ()
가 수행하는 작업과 동일합니다.OLD_PASSWORD ()
와old_passwords = 1
은 비추천되어 있습니다.--skip-innodb
옵션과 동의어 (--innodb = OFF
,--disable-innodb
등).date_format
,datetime_format
및time_format
시스템 변수 (이들은 사용되지 않습니다.)have_profiling
,profiling
및profiling_history_size
시스템 변수.innodb_use_sys_malloc
및innodb_additional_mem_pool_size
시스템 변수.timed_mutexes
시스템 변수. 이것은 아무것도하지 않고 아무 효과가 없습니다.--language
옵션. 대신--lc-messages-dir
옵션과--lc-messages
옵션을 사용하십시오.ALTER TABLE
의IGNORE
절.ALTER IGNORE TABLE
복제 문제를 일으키는 고유 인덱스를 만들 수있는 온라인ALTER TABLE
을 방해 외부 키의 문제 (부모 테이블에서 삭제 된 행)을 일으 킵니다.msql2mysql , mysql_convert_table_format , mysql_find_rows , mysql_fix_extensions , mysql_setpermission , mysql_waitpid , mysql_zap , mysqlaccess 및 mysqlbug 유틸리티.
mysqlhotcopy 유틸리티. 다른 방법은 mysqldump 와 MySQL Enterprise Backup 수 있습니다.
제거 된 기능
다음 항목은 폐지되고, MySQL 5.6에서 제거되었습니다. 다른 옵션이 있으면 그것을 이용하기 위해 응용 프로그램을 업데이트해야합니다.
--log
서버 옵션과log
시스템 변수. 대신 일반 쿼리 로그를 활성화하려면--general_log
옵션을 사용하여 일반 쿼리 로그 파일 이름을 설정하려면--general_log_file =
옵션을 사용하십시오.file_name
--log-slow-queries
서버 옵션과log_slow_queries
시스템 변수. 대신 슬로우 쿼리 로그를 활성화하려면--slow_query_log
옵션을 사용하여 슬로우 쿼리 로그 파일 이름을 설정하려면--slow_query_log_file =
옵션을 사용하십시오.file_name
--one-thread
서버 옵션. 대신--thread_handling = no-threads
을 사용하십시오.--safe-mode
서버 옵션.--skip-thread-priority
서버 옵션.--table-cache
서버 옵션. 대신table_open_cache
시스템 변수를 사용하십시오.--init-rpl-role
옵션과--rpl-recovery-rank
옵션rpl_recovery_rank
시스템 변수 및Rpl_status
상태 변수.engine_condition_pushdown
시스템 변수.optimizer_switch
변수engine_condition_pushdown
플래그를 대신 사용합니다.have_csv
,have_innodb
,have_ndbcluster
및have_partitioning
시스템 변수. 대신SHOW PLUGINS
를 사용하거나INFORMATION_SCHEMA
데이터베이스PLUGINS
테이블을 쿼리합니다.sql_big_tables
시스템 변수. 대신big_tables
을 사용하십시오.sql_low_priority_updates
시스템 변수. 대신low_priority_updates
을 사용하십시오.sql_max_join_size
시스템 변수. 대신max_join_size
을 사용하십시오.max_long_data_size
시스템 변수. 대신max_allowed_packet
를 사용하십시오.FLUSH MASTER
및FLUSH SLAVE
문. 대신RESET MASTER
및RESET SLAVE
문을 사용하십시오.SLAVE START
와SLAVE STOP
문.START SLAVE
및STOP SLAVE
문을 사용하십시오.SHOW AUTHORS
및SHOW CONTRIBUTORS
문.SET
문OPTION
및ONE_SHOT
규정 자.값
DEFAULT
를 저장 프로 시저 또는 저장 함수의 매개 변수 및 저장 프로그램의 로컬 변수 (SET
문)에 할당하는 것을 명시 적으로 금지되어 있습니다.var_name
= DEFAULTDEFAULT
를 시스템 변수에 할당 할 이전과 마찬가지로 허용되고 있습니다.대부분의
SHOW ENGINE INNODB MUTEX
출력은 5.6.14에서 삭제됩니다.SHOW ENGINE INNODB MUTEX
출력은 MySQL 5.7.2에서 완전히 삭제됩니다. 성능 스키마 테이블에 뷰를 작성하여 비교 가능한 정보를 생성 할 수 있습니다.