티스토리 뷰
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 보다 작을경우
******* 중요!!!!! *********
------------------------------'Computer > DataBase' 카테고리의 다른 글
( MySQL ) max_connection이 214..이상으로 올라가지 않는경우 (0) | 2016.04.22 |
---|---|
( MySql ) DB 최적화 작업 - 2 (0) | 2016.04.22 |
wait_timeout 조정 (0) | 2016.04.01 |
( Mysql ) Dead Lock 걸리는 원인중 하나 (0) | 2016.03.31 |
MySQL Session(세션) 제한 늘리기(동시접속자수) 2 (0) | 2016.03.29 |
- Total
- Today
- Yesterday
- 스위프트
- node.js
- 노드
- mysql
- xcode
- linux
- 점유율
- 배열
- Node
- 앵커브리핑
- Android
- nodejs
- 서버
- C
- BBC 가쉽
- 안드로이드
- Asterisk
- Kotlin
- GIT
- 깃헙
- IOS
- php
- 리눅스
- 뉴스룸
- git hub
- Phaser
- CentOS
- C언어
- Swift
- 손석희
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |