1) 컴파일러를 gcc 대신 pgg를 이용하고 -O6 옵션을 주어 컴파일 하면 MySQL 서버
는 약 11%정도 빨라진다.
2) 공유라이브러리를 사용하는 대신 컴파일시 -static 옵션을 주면 속도는 빠르지만
많은 메모리를 사용하게 된다.

2. 디스크와 심볼릭 링크
1) 스카시 하드를 달고 하드 디스크가 여러개일 경우 심볼릭 링크를 이용하여 데이터 파
일과 인덱스 파일을 서로 다른 디스크에 위치시키는 것이 좋다.

3. 버퍼 크기 조정
1) $ mysqladmin variables //현재 옵션이 어떤값을 가지고 있는지 보는 명령
이때 서버 성능과 관련 있는 옵션들
key_buffer_size : 인덱스를 저장하는 버퍼의 크기
max_connections : MySQL에 접속하는 클라이언트의 최대수
table_cache : 테이블 캐시의 크기
record_buffer : 테이블을 순차적으로 탐색할 경우 사용하는 버퍼의 크기
sort_vuffer : 정렬에 관련된 버퍼 크기
-- 바꿀때 사용하는 방법..
1> safe_mysqld --set-variable table-cache=256 &
2> safe_mysqld -O table-cache=256
둘중에 하나를 사용하면 된다.
-- key_buffer_size는 인덱스를 저장하는 버퍼의 크기이다. 인덱스는 검색을 빠르게
하므로 이 값을 크게 하면 인덱스를 하드디스크에서 읽지 않고 메모리에서 읽게 하여
메모리에서 읽게 하여 속도를 더욱 빠르게 할수 있다.(단 메모리가 많이 소모)
-- max_connections는 MySQL 서버에 접속할 수 있는 클라이언트의 최대 수이다.
사용자가 많은 사이트라면 이 값을 크게 늘려야한다.
-- max_connections와 table_cache의 값을 증가시키면 속도는 향상되지만 주의할 점
이 있다. 운영체제마다 다르지만 리눅스의 경우 한 프로세서에서 1024개 이상의 파일
을 동시에 사용할수 없다. 이것먼저 늘려주면 된다.

메모리가 256M 이상이고 테이블수가 많을때
$ safe_mysqld -O key_buffer=64M -O table_cache=256 -O sort_buffer=4M -O record_buffer=1M &
메모리가 128M 정도이고, 테이블 수가 작고 정렬을 많이 사용할때
$ safe_mysqld -O key_buffer=16M -O sort_buffer=1M
메모리가 작고, 클라이언트의 연결이 많을때
$ safe_mysqld -O key_buffer=512k-O sort_buffer=16k -O table_cache=32 -O record_buffer=8k -O net_buffer=1k &

일일이 기억하기 힘드므로 Mysql 소스 디렉토리에서 support-files라는 디렉토리를 보
면 각 시스템의 메모리 양이나 시스템에서 MySQL의 중요도에 따라 옵션을 설정해놓은
팡리이 있다. 이 옵션을 보고 적당하게 선택해서 사용하면 된다.

4. 기타 MySQL을 빠르게 하는 방법
1) 클라이언트가 서버에 연결할때는 Persistent한 연결을 해라
2) SELECT문을 쓸때는 인덱스를 사용하는지 확인해라
3) 메모리가 충분히 있다면 스왑메모리를 사용하지 말라
4) 컬럼에 Default value를 사용해라
5) User Defined Function을 사용해라
6) 컬럼에 유일한 값을 저장할 때는 AUTO_INCREMENT를 사용해라

참고 : MySQL을 정적으로 컴파일 하는방법
shell> ./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static


원본:

http://tommylee.egloos.com/1583580

 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기