다음 기사는 주로 대 한 실제 작업의 특정 단계에서 뿐만 아니라 MySQL 데이터베이스 간단 하 고 실용적인 최적화 메서드의 구현 우리의 주의의 가치는. 다음 문서는 정기적으로 분석 하 고, 테이블을 확인 하는 방법과 제대로 테이블을 최적화 하는 방법을 포함 하 여 특정 메서드의 구현 MySQL 데이터베이스 간단 하 고 실용적인 최적화에 주로 설명 합니다, 그리고 다음은 구체적인 계획의 설명, 나는 미래 연구에 도움이 되기를 바랍니다.
1, 일반 분석 테이블 및 검사 목록
분석 테이블에 대 한 구문은 다음과 같습니다:
분석 [지역 | No_write_to_binlog] 테이블 tb1_name [, Tbl_name]...
위의 문은 분석 하 고 저장 테이블, 그리고 분석 결과의 키워드 배포판 사용 되며
시스템 올바른 실행 계획을 생성 하는 SQL을 수 있도록 정확한 통계 정보를 얻을 수 있게 된다. 느끼는 경우에 사용자는 실제 실행 계획 하지 예상된 실행 계획을 수행 하는 프로 파일링 테이블 문제를 해결할 수 있습니다. 프로 파일링 하는 동안 테이블 읽기 잠금 잠겨 있습니다. Dbd, myisam, InnoDB 테이블에 대 한 유용합니다.
데이터 시트
분석 등
분석 테이블 table_name
는
체크 리스트에 대 한 구문은 다음과 같습니다:
체크 테이블 Tb1_name [, tbl_name]... [옵션] 옵션 = {빠른 | 빠른 | 매체 | 확장 | 변경된}
체크 리스트의 기능은 경우 하나 이상의 오류, 테이블과 테이블 MyISAM과 InnoDB 테이블에 대 한 유용 하 고 키워드 통계는 MyISAM 테이블
에 대 한 업데이 트를 확인합니다 확인
체크 테이블 뷰 정의에서 참조 하는 테이블에 존재 하지 않습니다과 같은 보기에서 오류를 확인할 수도 있습니다.
테이블의 큰 부분을 삭제 또는 가변 길이 (VARCHAR, blob, 또는 텍스트 열이 있는 테이블)의 행을 포함 하는 테이블에 더 많은 변화를 만든 경우 테이블 최적화 최적화 Table 명령을 사용 해야 하는 경우. 이 명령은 테이블에 공간 파편을 병합 및 삭제 또는 업데이트, 공간 낭비를 제거 하지만 최적화 Table 명령을 MyISAM, BDB, InnoDB 테이블에 대해서만 작동 합니다.
예제: 테이블 table_name
최적화
참고: 테이블 잠겨있을 것입니다 분석, 중 검사, 그리고 실행을 최적화, MySQL 데이터베이스는 바쁜 때 관련 조치를 취할 해야.
일반적인 SQL 최적화
우리가 종종 개발할 때 사용 하는 SQL 문을 아무것도 이상의 삽입, GroupBy, 고 등. 이러한 SQL 문을 최적화 하려면 어떻게 해야 우리가?
1입니다. 대량 삽입 데이터
적절 한 설정 수 로드 명령 사용 하 여 가져오기 데이터 가져오기 속도 향상 하는 때
.
MyISAM 스토리지 엔진 테이블, 신속 하 게 많은 양의 다음과 같은 방법으로
에서 데이터를 가져올 수 있습니다
ALTER TABLE tb1_name 해제 키;
로드 데이터
ALTER TABLE tb1_name 활성화 키;
사용 안 함 키와 사용 키 고유 인덱스 되지 않은 MyISAM 테이블을 설정 하거나 업데이트 하는 데 사용 됩니다. 비어 있지 않은 MyISAM 테이블에 많은 양의 데이터를 가져올 때 두 명령을 설정 하 여 가져오기의 효율성을 높일 수 있습니다.
빈 MyISAM 테이블에 많은 양의 데이터를 가져오기 위해
, 기본값은 인덱스를 만들기 전에 데이터를 가져올 하 고 인덱스가 설정 되지 않은.
로드 데이터 infile '/ 홈/mysql/text_txt' 테이블 텍스트
로
형식의 InnoDB 테이블에 대 한,이 접근 데이터를 가져오기의 효율성 개선 되지 않는 그러나 이노 db 종류에 대 한 테이블을 최적화 하는 방법은 여러 가지가.
1입니다. InnoDB 유형의 테이블 기본 키의 순서 대로 저장 됩니다 때문에 가져온된 데이터는 효과적으로 데이터를 가져오기의 효율성을 향상 시킬 수 있는 기본 키의 순서 대로 정렬 됩니다.
2입니다. Set unique_checks를 수행 해제 고유성 체크섬, 설정된 Unique_checks을 수행 하는 데이터를 가져오기 전에 = 0 = 1 가져오기가 완료 된 후 고유성 체크섬을 복원, 가져오기의 효율성을 향상 시킬 수 있습니다.
3입니다. 응용 프로그램에서 자동 커밋을 사용 하는 것이 좋습니다 설정된 자동 커밋 수행 하는 = 0, 가져오기 전에 자동 커밋 해제, 설정된 자동 커밋 실행 = 1 가져오기 완료 되 면 자동 커밋, 설정 하거나 가져오기 효율성을 개선.
최적화 INSERT 문
데이터를 삽입 하면
,
를 최적화 하기 위해 다음과 같은 방법으로 고려할 수 있습니다.
1입니다. 크게 클라이언트와 MySQL 데이터베이스에 대 한 종료의 연결, 비용을 감소 시키는 동시에 가능한 만큼 여러 값 테이블을 사용 하 여 INSERT 문 한 고객에서 많은 행 삽입 하면 별도로 실행 하는 단일 INSERT 문을 보다 더 빨리 만들기.
예
:
테스트 값 (1, 2)
에
삽입
테스트 값 (3, 4)
에
삽입
테스트 값 (5, 6)
에 삽입
위의 3 문장 읽기: 테스트 값 (1, 2), (3, 4), (5, 6)에 삽입...
2입니다. 다른 고객에서 많은 행을 삽입 하는 경우 지연 된 Insert 문을 사용 하 여 더 높은 속도 얻을 수 있습니다.
지연의 의미는 INSERT 문이 실행 될 즉시, 사실, 데이터 메모리 큐에 배치 되 고 있는 각 문과 low_priority의 삽입 보다 훨씬 더 빨리 그와 반대로, 다른 모든 사용자가 읽기를 삽입 하기 전에 테이블을 쓸 때 디스크에 실제로 기록 되지 않습니다.
3입니다. 별도 인덱스 파일 및 데이터 파일을 별도 디스크
4입니다. 만약 당신이 일괄 삽입, 속도, Bulk_insert_buffer_size 변수 값을 늘릴 수 있습니다 있지만이 MyISAM 테이블에 사용할 수 있습니다.
5입니다. 텍스트 파일에서 테이블을 로드할 때 로드 데이터 파일을 사용 합니다. 이것은 일반적으로 20 번 배 많은 INSERT 문을 사용 하 여 보다 빠른입니다.
아래 MySQL 성능 최적화에 대 한 언급 될 필요가 있는 다른 것 들 중 일부는 우리는 결합 하 고 MySQL의 성능 발휘.
이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이
페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.
커뮤니티에서 표절 사례를 발견한 경우
info-contact@alibabacloud.com
으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.