IT/MySQL
MySQL 튜닝의 핵심
swhwang
2017. 3. 20. 10:59
성능면에서 DB서버에 요구되는 것은 무엇일까?
한마디로 데이터를 얼마나 빨리 내보내고 저장할수 있는가 라고 할수 있지 않을까 생각한다.그렇다면 DB서버의 선은 튜닝, 이를테면 [보다 짧은 시간에 데이터를 내보내고 저장할수 있도록]하려면 어떤 방법을 생각해 볼수 있을까?
튜닝의 단면으로의 분류
1.서버측
2.서버측 이외
3.주변 시스템
1.서버측
첫번째로 [서버측면에서의 튜닝]이다. 서버측 튜닝이라고 하면 맨 먼저 들수 있는 것이 [mysqld의 파라미터 튜닝]일것이다. 그중에서도 메모리 관련 파라미터와 디스크 I/O에 관련된 파라미터가 튜닝의 핵심이 된다.
mysqld의 파라미터 이외에는 다음과 같은 [OS관련된 튜닝]을 들수 있다.
디스크 I/O와 관련된 커널 파라미터의 조정
적절한 파일시스템 선택과 마운트 옵션등의 조정
그밖에 파라미터 이외의 튜닝, 연구로는 [파티셔닝]이 있다. 규머가 커지면 데이터 크기나 액세스가 증대되어 한대의 DB서버로는 모두 처리할수 없게 된다.
그러므로 테이블단위로 DB서버를 나누거나 테이블의 데이터를 primary key등을 기반으로 해서 불할해서 DB서버를 나눈다. 이에 따라 저장하는 데이터 크기를 작게 유지할수 있기 때문에, 캐시에 올리기 쉽다거나 액세스를 분산할수 있으므로 서버의 부하가 줄어드는 효과를 기대할수 있다. 반면 , 분할된 DB서버군중에 적절한 것을 선택하는 처리를 하거나, SQL레벨에서 테이블 결합을 할수 없게 되는 등에 애플리케이션 측의 부담이 늘어나는 측면도 있다.