설명 :
이노 디비 롤백하는 MYSQL 커밋이 제공하고 안전한 트랜잭션 (ACID를 준수) 스토리지 엔진의 충돌 복구 기능합니다. 이노 디비 행 수준 SELECT 문을 잠그고 또한 오라클 스타일의 일관된 비 잠금 읽기를 제공한다. 이러한 기능은 다중 사용자 배포 및 성능을 향상시킬 수 있습니다. 아주 작은 공간 이노 디비 수준 잠금 중국의 은행으로, 이노 디비에 잠겨 확장 할 필요가 없습니다. 이노 디비는 FOREIGN KEY 필수 지원합니다. SQL 쿼리에서 자유롭게 심지어 같은 쿼리도 혼합 할 수 있습니다, 혼합 테이블과 다른 테이블 MYSQL의 이노 디비 유형을 입력 할 수 있습니다.
이노 디비의 설립자 : 헤이 키 Tuuri
당신은 저자가 질문에 대한 답변, 버그가 직접 사회라고 할 수가 발생하면 버그 지역 사회의 헤이 키 Tuuri 이노 디비가 매우 활성화되어 있습니다.
: 왜 곡 이노 디비 배울
현재 : 이노 디비 MYSQL 데이터의 엄청난 금액의 최대 성능을 처리 할 수 있도록 설계된다. 그 CPU 효율은 아마 다른 디스크 기반 관계형 데이터베이스 엔진이 일치 할 수있다. 데이터 또는 응용 프로그램 이노 디비 웹 사이트의 많은 양에 환호된다.
한편, 복사 작업은 일관성있는 마스터 및 슬레이브 데이터가 어떤 역할을 보장하기 위해 이노 디비 데이터베이스입니다.
요약 튜닝 매개 변수 :
1. 메모리 사용률이
2 일 제어
3. 파일 IO 할당 및 공간
(4 개) 기타 관련 매개 변수를
1. 메모리 사용률 :
소개하는 이노 디비 가장 중요한 매개 변수 :
innodb_buffer_pool_size
이 매개 변수와 유사하다 key_buffer_size의 MyISAM,하지만 차이가있다. 버퍼 데이터가 삽입 디비 메인 테이블 데이터 파라미터이 캐시 인덱스. 기본 매개 변수의 최적화를 가속화 이노 디비.
원리 매개 변수 지정 메모리 :이 매개 변수는 기본적에만 8M에 의해 할당 된, 매우 작은 값으로 말할 수있다. 당신은 전용 DB 서버의 경우, 그는 70 %를 차지하고 있습니다 -80 메모리의 %를. 필요 더 배려를 할당 할 수 있도록이 매개 변수를 동적으로 변경할 수 없습니다. 배포, 너무 큰 너무 많이 점유 스왑 특히 느린 MYSQL 쿼리의 결과. 당신이 매개 변수의 값으로 10 %에 대한 데이터 크기 +를 할당 할 수 있도록 데이터는 상대적으로 작은 경우. 예를 들어 : 데이터 사이즈는 50M, 64M = Innodb_buffer_pool_size에 할당 된 값이다
설정 :
Innodb_buffer_pool_size = 4G
이 사용 파라미터 값에 따라 할당되는 디비 상태 \ G의 도면 에
----------------------
버퍼 메모리 풀 앤드
---- ------------------
전체 메모리는 4668764894 할당,
확인 사용량에.
둘째 :
Innodb_additional_mem_pool는 :
조치 : 저장하는 데 사용 이노 디비 내부 디렉토리에
이 값이 할당되지 않은 너무 큰, 시스템이 자동으로 조정할 수 있습니다. 수행 너무 높게 설정되지 않았습니다. 데이터의 16M 세트는 테이블이 적절하게 증가시킬 수 많은 경우, 일반적으로 큰 충분하다. 이 값이 자동으로 증가되는 경우, 오류 로그가 표시됩니다.
분배 원리 :
로 표시 디비 상태 \ G는, DB를의 동작 상태가 무엇인지 (제 BUFFER POOL AND MEMORY 참조)는보고하고 적절한 값으로 조절 될 수있다.
----------------------
BUFFER POOL는 AND 메모리
----------------------
총 메모리 4,668,764,894 할당, 추가 풀 16777216 할당
참조 : 할당 추가 풀 16,777,216에
상황의 매개 변수에 따라 적절하게 조정할 수 있습니다.
설정 방법 :
Innodb_additional_mem_pool = 16M
Innodb_additional_pool_size
일 측면에 대해 2.
innodb_log_file_size
역할 : 지정된 날짜 값의 크기
할당 원칙 : 몇 일이 거의 크기와 동일하여 Innodb_buffer_pool_size의 멤버의 값을 추가 할 수 있습니다. 4G. LOG 파일 내에서 일반적으로 2G, 바람직하게 여러 사이즈를 추가하여 제어 매일의 최대 크기에 대한 상한값. 당신은 데이터의 크기에 따라 트랜잭션 크기의 특정 상황에서 볼 필요가있다.
설명 :이 값이 할당 쓰기 속도 및 데이터베이스의 크기, 트랜잭션 크기, 재부팅 후 복구는 좋은 관계를 가지고있다.
설정 방법 :
innodb_log_file_size = 256M
Innodb_log_files_in_group
역할 : 당신은 그룹의 값을 지정하는 데 몇 일이있다.
할당 원칙 : 일반적으로, 우리는 2-3일 설정 값을 사용할 수 있습니다. 기본값은 두 가지입니다.
설정 방법
. innodb_log_files_in_group 3 =
Innodb_log_buffer_size :
역할 : 트랜잭션 버퍼 메모리에.
할당 원칙 : 제어 2-8M 값이 너무 많이. 그의 기억은 일반적으로 한 번에 두 번째 디스크 내부에 기록됩니다. 특정 방법 및 거래에 관한 기록 제출. 오라클과 이것에 대해 다른 데이터베이스에서, 일반적으로 더 적절한 최대 3M로 지정.
참조 : Innodb_os_log_written는 (글로벌 상태를 얻을 수 있습니다 보여)
이 값이 너무 빨리 성장하는 경우, Innodb_log_buffer_size을 증가하는 것이 적절할 수 있습니다
당신은이 매개 변수의 값을 증가 고려할 수 달리 TEXT, 또는 BLOB 필드를 처리해야하는 경우, 또한.
설정 방법 :
innodb_log_buffer_size = 3M
Innodb_flush_logs_at_trx_commit
역할 : 제어 거래를 제출
할당 원칙 :이 매개 변수는 세 개의 값 0,1,2 자신의 허용 수준을 확인하시기 바랍니다. 기본값은 중앙 도서관을 변경하지 마십시오 1입니다.
높은 성능은 0 또는 2로 설정하지만, 두 번째 트랜잭션이 손실 될 수 있습니다.
설명 :
이 설정 매개 변수 그래서 여기에 더 설명하기보다, 이노 디비의 성능에 큰 영향을 미친다.
이 값이 1 인 경우 : 이노 디비 거래 값이 각각 제출 한 후 로그 파일에 기록하고, 날짜 값은 디스크로 않습니다. 이것은 트랜잭션을 잃지 않고 수행 할 수 있습니다.
2의 값 경우 : 각 로그 버퍼에 제출가 아닌 디스크 작동에 로그 파일을 플러시로, 파일에 기록되어, 새로 고침 로그 파일은 한 번에 초당 2의 값의 경우에 발생합니다. 그러나 발생 당 100 % 보장 할 수 없습니다 때문에 그 과정에서 문제를 호출하려면 해당합니다. 그래서 성능이 가장 빠른 것입니다. 그러나 운영 시스템 충돌 또는 전원 실패 트랜잭션의 마지막 순간을 삭제합니다.
이 값이 0 인 경우 : 두 번째 로그 버퍼가 로그 파일에 기록하고 로그 파일의 디스크 작동에 플러시하지만, 트랜잭션에 아무런 조작을 제출하지 않습니다에 한 번. 축소의 mysqld 프로세스가 충돌하기 전에 거래의 마지막 순간을 제거합니다.
이 값이없는 1 위의 분석에서 더 나은 성능을 얻을 수 있지만, 자신의 상황에 따라 측정 할 필요하므로 예외는 손실이 될 것입니다 발생합니다.
설정 방법
. innodb_flush_logs_at_trx_commit 1 =
그는 추가 :
3. 파일 IO 할당 및 공간
Innodb_file_per_table
효과 : 각 이노 디비 테이블은 자신의 별도의 테이블 공간을 가지고있다. 이러한 공간의 일부를 복구 할 수있는 파일을 삭제하는 등.
분배 원칙 :에만 사용하지 사용합니다. DB는뿐만 아니라 공통 테이블 공간이 필요합니다.
설정 방법
. innodb_file_per_table 1 =
Innodb_file_io_threads의
조치가 : 파일을 읽고 IO의 수를 쓰기이 매개 변수는 Windows에서 작동합니다. 도 4는 리눅스에서 동일 할 것이다
설정 방법
innodb_file_io_threads = 4
Innodb_open_files의
역할 : 이노 디비 열 수있는 데이터 테이블을 제한.
분배 원칙 : 라이브러리 테이블의 경우 특히 많은 수의이 증가합니다. 기본값은 300입니다.
설정 방법 :
innodb_open_files = 800
하십시오 적절한 증가 table_Cache
4. 기타 관련 매개 변수는
여기에 설명 된 더 중요한 매개 변수입니다 :
innodb_flush_method를
역할 : 모델 이노 디비 IO 시스템 및 처리
분배의 원칙 : 윈도우 설정되지는.
유닉스를 설정할 수 있습니다 fsync를 () 또는 O_SYNC / O_DSYNC를
캐시 시스템은 그에게 그것을 금지 할 수있는 시스템이 금지합니다.
리눅스를 선택할 수 있습니다 : O_DIRECT
디스크에 직접 기록을 시스템 캐시를 금지
그는 추가 :
설정 방법 :
innodb_flush_method를는 O_DIRECT를 =
Innodb_max_dirty_pages_pct
역할 : 1 ~ 100의 범위에서 백분율 값 아래의 버퍼 제어 이노 디비 더러운 페이지, 기본값은 90이며
이 매개 변수의 또 다른 용도 : 이노 디비 메모리 할당, 심각한 스왑 직업의 수 결과가 너무 큰 경우 즉 릴리스 스왑 공간을 달성 할 수 있도록이 값을 적절하게 조정 감소한다. 의미의 건축 : 90 %의 최대 값이 15 % 이상. 너무, 필요가 작업을 업데이트하는 것은 너무 느립니다, 데이터 페이지를 넣어 너무 작아, 각 페이지에 의한 변화 너무 많은 데이터, 너무 작은 캐시를 업데이트합니다.
설정 방법 :
Innodb_max_dirty_pages_pct = 90 명
동적으로 변경 슈퍼 권한이 필요합니다
SET 글로벌 Innodb_max_dirty_pages_pct = 50;
참조 : https://imysql.com/node/609
https://www.cnblogs.com/steven9898/p/11340764.html