성능 향상을 위해 OPTIMIZE TABLE을 실행하여 테이블 조각 모음


12

Linux 64 비트 OS를 실행하고 있습니다. 내 mysql 튜너는 다음과 같이 말합니다.

-------- 일반 통계 ---------------------------------------- ----------
[-] MySQLTuner 스크립트의 버전 확인을 건너 Skip
[확인] 현재 지원되는 MySQL 버전 5.1.61-log를 실행 중
[확인] 64 비트 아키텍처에서 작동

-------- 스토리지 엔진 통계 --------------------------------------- ----
[-] 상태 :-아카이브 -BDB-연합 + InnoDB -ISAM -NDBCluster
[-] MyISAM 테이블의 데이터 : 1G (테이블 : 1914)
[-] InnoDB 테이블의 데이터 : 4M (테이블 : 199)
[!!] 총 조각화 된 테이블 : 296

-------- 보안 권장 사항 ---------------------------------------- ---
[확인] 모든 데이터베이스 사용자에게 암호가 할당되어 있습니다

-------- 성능 지표 ---------------------------------------- ---------
[-] 최대 : 6 초 (7K q [1K qps], 142 conn, TX : 8M, RX : 701K)
[-] 읽기 / 쓰기 : 97 % / 3 %
[-] 총 버퍼 : 1.7G 글로벌 + 스레드 당 13.2M (최대 스레드 384 개)
[확인] 가능한 최대 메모리 사용량 : 6.6G (설치된 RAM의 42 %)
[확인] 느린 쿼리 : 0 % (0 / 7K)
[확인] 사용 가능한 최대 연결 사용량 : 5 % (20/384)
[OK] 키 버퍼 크기 / 총 MyISAM 인덱스 : 1.5G / 2.7G
[OK] 키 버퍼 적중률 : 97.4 % (553K 캐시 / 14K 읽기)
[확인] 쿼리 캐시 효율성 : 64.6 % (4K 캐시 / 6K 선택)
[확인] 하루에 캐시 캐시 제거 : 0
[OK] 임시 테이블이 필요한 정렬 : 0 % (2 개의 임시 정렬 / 337 개의 정렬)
[확인] 디스크에 생성 된 임시 테이블 : 8 % (디스크에 17 개 / 총 198 개)
[OK] 스레드 캐시 적중률 : 85 % (20 개 생성 / 142 개 연결)
[OK] 테이블 캐시 적중률 : 98 % (438 개방 / 445 개방)
[확인] 열린 파일 사용 한도 : 10 % (856 / 8K)
[OK] 즉시 획득 한 테이블 잠금 : 99 % (2K 즉시 / 2K 잠금)
[OK] InnoDB 데이터 크기 / 버퍼 풀 : 4.2M / 8.0M


-------- 권장 사항 ----------------------------------------- ------------
일반적인 권장 사항 :
    성능 향상을 위해 OPTIMIZE TABLE을 실행하여 테이블 조각 모음
    MySQL은 지난 24 시간 이내에 시작되었습니다. 권장 사항이 정확하지 않을 수 있습니다

OPTIMIZE TABLE더 나은 성능을 위해 테이블 ​​조각 모음 을 실행 하는 것이 좋습니다 . 그러나 퍼티를 통해 실행하는 방법을 모르겠습니다.

Putty를 통해 코드를 실행하는 방법을 알려주는 사람이 있습니까?

답변:


7

OPTIMIZE TABLE SQL 문입니다-MySQL 클라이언트에서 실행하십시오.

서버의 명령 행에 명령 행 클라이언트가 설치되어 있어야합니다. 를 사용하여 클라이언트의 데이터베이스에 연결할 수 있습니다 mysql -u username -p.

자세한 내용은 설명서OPTIMIZE TABLE 를 참조하십시오.


이 사이트는 전문 시스템 관리자가 질문하는 내용입니다.
gparent

@gparent-Shane의 완벽하게 유효한 대답이 아니라 질문에 있었습니까?
Mark Henderson

2
@gparent 맞아-하지만 SQL 문을 볼 때 누군가의 전문성을 판단하는 것이 공평하다고 생각하지 않습니다. 리서치가 답을 빨리 내놓았을 것입니다. 그러나 저는이 커뮤니티가 너무 "명백한"질문을 거절한다는 생각이 마음에 들지 않습니다.
Shane Madden

당신 말이 맞아요, 내 의견은 여기에 전혀 속하지 않습니다. 저는 저자가 Shane의 질문에 의견을 게시 한 다음 제거했습니다. 또는 Barkat의 질문에 게시하려고했지만 일반적으로 더 많은 정보를 추가하려고합니다. 그 경우였습니다.
gparent

1
그래도 동의하지 않습니다. 선을 그려야 할 곳이 있습니다. 현재 MySQL 데이터베이스를 사용하고 있고 최적화하려는 전문가 (자주 묻는 질문 : 전문가 용량)가 용어를 Google에 검색하고 첫 번째 검색 결과에서 MySQL 쿼리라는 것을 알기에 충분히 능숙하다고 말하는 것이 공정하다고 생각합니다. 어쩌면 나는 모든 직원에게 너무 많은 것을 기대하고 있습니다 ..
gparent

18

mysqlcheck -u username -p --auto-repair --optimize --all-databases터미널에서 시도 할 수도 있습니다 .

"테이블 최적화"를 실행하는 한 이와 같이 MySQL을 시작할 수 mysql -u username -p있으며 거기서부터 명령을 실행할 수 있습니다. 일반적으로 내가 사용하는 첫 번째 명령 show databases;은 실제로 MySQL 자습서를 먼저 찾아야합니다. Google에서 처음 등장한 것 : http://downloads.mysql.com/docs/mysql-tutorial-excerpt-5.1-en.pdf

퍼티 사용 여부는 관계가 없습니다. "Putty를 통하지 않고" "명령 줄에서"라고 말하고 싶을 수도 있습니다.


2
이것은 받아 들여진 것보다 훨씬 더 나은 해결책입니다. 명령을 실행하기 전에 모든 데이터베이스 및 테이블과 자동 복구를 열거 할 필요가 없습니다.
Sammitch

1
또한이 중 하나를 실행하기 전에 선호하고 데이터베이스 백업을 수행하십시오. mysqldump -u username -p dbname > dbname.sql하고 gzip dbname.sql멋지게 그것을해야한다.
Fiasco Labs

Fiasco는 최소한 centos 단위로 명령을 수행해야합니다mysqldump -u username -p db_name > dbname.sql
yitwail
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.