MySQL 데이터베이스 최적화 의 구체 적 인 방법 설명
4124 단어 MySQL데이터베이스 최적화
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name[, tbl_name]...
이상 의 문 구 는 표 의 키워드 분 포 를 분석 하고 저장 하 는 데 사용 되 고 분석 결 과 는 시스템 으로 하여 금 정확 한 통계 정 보 를 얻 게 하여 SQL 이 정확 한 집행 계획 을 생 성 할 수 있 게 한다.사용자 가 실제 실행 계획 이 예상 한 실행 계획 이 아니 라 고 느낀다 면 분석 표를 한 번 실행 하면 문 제 를 해결 할 수 있 습 니 다.분석 하 는 동안 잠 금 을 읽 고 시 계 를 잠 그 십시오.이 는 마 이 ISAM,DBD,이 노 DB 시계 에 작용 한다.예 를 들 어 하나의 데이터 시트analyze table table_name
검사 표를 분석 하 는 문법 은 다음 과 같다.CHECK TABLE tb1_name[,tbl_name]...[option]...option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
검사 표 의 역할 은 하나 이상 의 표 에 오류 가 있 는 지 를 검사 하 는 것 이다.CHECK TABLE 은 MyISAM 과 InnoDB 표 에 작용 하고 MyISAM 표 에 대해 키워드 통계 데이터 가 업데이트 되 는 CHECK TABLE 도 보기 에 오류 가 있 는 지 확인 할 수 있다.예 를 들 어 보기 정의 에서 인 용 된 표 가 존재 하지 않 는 다.2.정기 적 최적화 표 최적화 표 의 문법 은 다음 과 같다.OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name [,tbl_name]...
표 의 대부분 을 삭제 하거나 가 변 길이 줄 이 있 는 표(VARCHAR,BLOB 또는 TEXT 열 이 있 는 표)를 더 많이 변경 했다 면 OPTIMIZE TABLE 명령 을 사용 하여 표 최적화 해 야 한다.이 명령 은 표 의 공간 조각 을 합 칠 수 있 으 며 삭제 나 업데이트 로 인 한 공간 낭 비 를 없 앨 수 있 지만,OPTIMIZE TABLE 명령 은 MyISAM,BDB,InnoDB 표 에 만 작용 합 니 다.예:optimize table tablename 메모:analysis,check,optimize 실행 기간 에 시 계 를 잠 그 므 로 MySQL 데이터베이스 가 바 쁘 지 않 을 때 관련 작업 을 수행 하 는 것 에 주의해 야 합 니 다.자주 사용 하 는 SQL 은 우리 가 개발 할 때 자주 사용 하 는 SQL 문 구 를 최적화 시 킵 니 다.INSERT,GROUPBY 등 이 아 닙 니 다.이러한 SQL 문장 에 대해 우 리 는 어떻게 최적화 합 니까?1.대량의 데 이 터 를 로드 명령 으로 가 져 올 때 적당 한 설정 은 가 져 오 는 속 도 를 높 일 수 있 습 니 다.MyISAM 저장 엔진 의 표 는 다음 과 같은 방식 으로 대량의 데이터
ALTER TABLE tb1_name DISABLE KEYS;
loading the data
ALTER TABLE tb1_name ENABLE KEYS;
DISABLE KEYS 와 ENABLE KEYS 를 빠르게 가 져 와 MyISAM 표 의 유일한 색인 이 아 닌 업 데 이 트 를 열거 나 닫 을 수 있 습 니 다.비 어 있 는 MyISAM 표 에 대량의 데 이 터 를 가 져 올 때 이 두 명령 을 설정 하면 가 져 오 는 효율 을 높 일 수 있 습 니 다.빈 MyISAM 표 에 대량의 데 이 터 를 가 져 올 때 기본 값 은 데 이 터 를 가 져 온 다음 에 색인 을 만 드 는 것 입 니 다.색인 은 설정 하지 않 아 도 됩 니 다.load data infile '/home/mysql/text_txt' into table text
이 노 DB 유형의 표 에 대해 이런 방식 은 데 이 터 를 가 져 오 는 효율 을 높 일 수 없 지만 이 노 DB 유형의 표를 최적화 하 는 방식 도 몇 가지 있다.1.InnoDB 형식의 테이블 은 메 인 키 순서대로 저장 되 기 때문에 가 져 온 데 이 터 를 메 인 키 순서대로 정렬 하면 가 져 온 데이터 의 효율 성 을 높 일 수 있 습 니 다.2.데 이 터 를 가 져 오기 전에 SET UNIQUE 실행CHECKS=0,유일한 검사 닫 기,가 져 오기 종료 후 SET UNIQUE 실행CHECKS=1,유일한 검증 을 복원 하여 가 져 오 는 효율 을 높 일 수 있 습 니 다.3.자동 제출 방식 을 사용 하면 가 져 오기 전에 SET AUTOCOMMIT=0 을 실행 하고 자동 제출 을 닫 는 것 을 권장 합 니 다.가 져 오기 가 끝 난 후에 SET AUTOCOMMIT=1 을 실행 하고 자동 제출 을 열 어도 가 져 오기 효율 을 높 일 수 있 습 니 다.최적화 INSERT 문 구 는 데이터 INSERT 를 진행 할 때 다음 과 같은 몇 가지 방식 으로 최적화 하 는 것 을 고려 할 수 있다.1.만약 에 한 고객 에 게 여러 줄 을 삽입 하면 가능 한 한 여러 개의 값 표 의 INSERT 문 구 를 사용한다.이런 방식 은 클 라 이언 트 와 MySQL 데이터베이스 의 링크,닫 기 등 소 모 를 크게 단축 시 킬 것 이다.각각 실 행 된 단일 INSERT 문장 보다 효율 을 빠르게 합 니 다.예 를 들 어
insert into test values(1,2)
insert into test values(3,4)
insert into test values(5,6)
위의 세 문장 을 insert into test values(1,2),(3,4),(5,6)...2.서로 다른 고객 으로 부터 많은 줄 을 삽입 하면 INSERT DELAYED 문장 을 사용 하여 더욱 높 은 속 도 를 얻 을 수 있 습 니 다.DELAYED 의 의 미 는 INSERT 문 구 를 즉시 실행 하 게 하 는 것 입 니 다.사실은 데 이 터 는 메모리 의 대기 열 에 놓 여 있 고 디스크 에 진정 으로 기록 되 지 않 았 습 니 다.이것 은 각 문 구 를 각각 삽입 하 는 것 보다 훨씬 빠 릅 니 다.LOW_PRIORITY 는 반대로 모든 다른 사용자 가 시 계 를 읽 고 쓴 후에 야 삽입 합 니 다.3.색인 파일 과 데이터 파일 을 다른 디스크 에 나 누 어 저장 합 니 다.4.대량으로 삽입 하면 bulk 를 증가 시 킬 수 있 습 니 다.insert_buffer_size 변수 값 의 방법 으로 속 도 를 올 리 지만 이 는 MyISAM 표 에 만 사용 할 수 있 습 니 다.5.한 텍스트 파일 에서 시 계 를 불 러 올 때 LOAD DATA INFILE 을 사용 합 니 다.이것 은 보통 많은 insert 문 구 를 사용 하 는 것 보다 20 배 정도 빠르다.다음은 my sql 성능 최적화 의 다른 주의해 야 할 부분 입 니 다.여러분 이 결합 하여 my sql 의 성능 을 충분히 발휘 합 니 다.4567915) mysql 데이터베이스 조회 최적화 MySQL 최적화 전 공략-관련 데이터베이스 명령
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.