티스토리 뷰

MySQL 5.6 기준..

http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

1. 우선 show variables; 명령어를 통해 나오는 변수들에 대해 공부해보고 이걸 조정해보자.


2. show variables; 를 치니까...452개의 항목들이 나옴.


3. 452개 중 필요하다고 생각되는 부분을 하나씩 google search 해서....의미를 알아보고 최적화를 한번 해 보도록하자.. 


* 452개...엄청많앙...계속 추가하기로 하자


* 지극히 개인적인 영어 원문 해석이기 때문에, 보는 이들은 주의해야 할 것.


------------------------------

- autocommit : 자동 커밋 활성화 여부


? 자동커밋이란?

예를들어.. 다중 update 문을 실행한다..


1 row update 완료

2 row update 완료

3 row update .. 중복key 등의 문제로 에러..!


자동 커밋 [on]의 경우 완료되었던 1, 2는 반영

자동 커밋 [off]의 경우 완료되었던 1, 2도 rollback 됨.

------------------------------

- back_log : MySql 이 가질 수 잇는 양의 연결 요청 수.


메인 MySql 스레드가 매우 짧은 시간동안 엄청난 수의 연결요청을 받을 때, 활동하기 시작함.

[ TCP/IP 연결에 대한 수신 큐(listen queue)의 크기 ] 라고도 볼 수 있음

------------------------------

- big_tables : 영어가 약해 잘 모르겠다 ㅠㅠ 대충 해석해 보기로는... "Table Full" 에러를 방지하기 위해 큰 용량을 수용하는 테이블을 만들것인지의 여부 같은데, 

확실한건..


also slows down queries for which in-memory tables would suffice


쿼리문의 속도도 같이 느려지는 현상이 있을것이니 주의해야 한다..

------------------------------

- binlog_cache_size : 트랜젝션 동안 바이너리 로그용 SQL 명령문을 가지고 있기 위한 캐시의 크기이다.

크기가 큰 다중 명령문 트랜젝션을 자주 사용하는 경우라면 해당 캐시 사이즈를 조절하여 성능을 향상 시킬 수 있을 것. (바이너리 로그 기록시에만 해당)

* 우리는 binary log는 기록 안하는듯? show binary logs 를 쳐보면 사용안한다고 하는것 같다.

------------------------------

bulk_insert_buffer_size : MySQL이 빠른 대량 insert를 하기위한 buffer size.

아마도 대량 insert 시에는 어떤 buffer 에 저장해놓았다가 insert를 하는 모양인데, 해당 buffer의 size로 보임.

------------------------------

concurrent_insert : 동시 삽입 가능여부, 당연히 ON 으로 해야하지 않을까 싶다.

해석하기로는..중간에 빈 구멍(free hole)이 없는 MyISAM 테이블에 한하여 동시삽입이 가능하게 할 지를 결정하는 flag 인듯.

빈 구멍이란 뜻은 뭘까, 중간에 데이터가 없다는 뜻인가? 중간에 데이터가 없을수가있나?

아니면... 여러개의 insert가 동시에 진행되면서 7번행에 insert 중인것을 7번이 빈 구멍이라고 표현하는 것일까?


좀더 자세히 알아보자

------------------------------

delay_key_write : MyISAM 테이블에만 적용되는 값, 

키 버퍼가 flush 될지 아닐지를 결정하는 값.


* flush ? 사용자가 원할때 buffer의 내용을 비우는..명령

'비운다'는 의미는 여러가지 의미로 해석될 수 있음

I/O 의 경우 buffer를 비운다는것은 output 즉, 출력을 한다는 의미일 것이고..output buffer 를 출력 후 비우니..

Network 의 경우 buffer에 있는 내용을 client 에 전송하는 것을 뜻하겠지?

------------------------------

delayed_insert_limit : 지연된 열 삽입을 하고 난 후, INSERT DELAYED HANDLER 는 어떤 SELECT 문 실행이 지연되고 있는지 검사하게 되며, INSERT 로 인해 DELAYED 된 구문이 있다면 해당 명령문이 먼저 실행 될 수 있도록 허용한다.


아마도 INSERT 문으로 지연되는 SELECT 문이 지연되고 있는 갯수? 를 뜻하지 않나 싶다.

* 아닌것 같다. INSERT 문에 DELAY 옵션을 걸어줄때의 경우 인듯하다.

INSERT 문에 뭐하러 DELAYED 라는 옵션을 걸까? 변탠가?

------------------------------

- sort_buffer_size : 정렬을 실행하는데 필요한 각 쓰레드는 이 변수 크기의 버퍼를 할당 받는다. 해당 변수 크기를 늘리면 ORDER BY, GROUP BY 속도가 향상된다.


******* 중요!!!!! *********

------------------------------

- thread_cache_size : 서버가 다시 사용할 목적으로 캐싱하는 쓰레드의 숫자.

클라이언트 연결이 끊기게 되면, 캐시 안에 있는 쓰레드의 수가 thread_cache_size 보다 작을경우 


******* 중요!!!!! *********

------------------------------




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함