[mysql row format]
fixed : varchar로 지정해도 내부적으로 char로 처리
dynamic : AVG_ROW_LENGTH(힌트 개념), MAX_ROW(크기 넘어가면 안됨)
compressed : fixed나 dynamic을 압축해서 저장할수 있음. (read only)
1.mysql 쿼리 최적화.
1.dynamic row는 AVG_ROW_LENGTH, MAX_ROW로 10%정도의 성능향상 기대할수 있음.
2.pack keys : 인덱스 압축 -> 읽기는 향상, 쓰기는 저하.
3.checksum : 복구시 안정성 향상
4.procedure analyse() : 칼럼 타입 분석해서 추천.(데이타가 이미많이 들어간 상태에서 사용해볼만함.)
2.optimizer
1.analyze table : 최신의 정보를 optimizer가 사용할수 있도록 통계정보 분석, 저장.
- 실행시간동안 read lock 걸림.
2.optimize table : 조각모음. (delete가 많이 일어났을경우 실행하는게 좋음)- dynamic의경우 사용.
3.explain
: type 값이 아래와 같을경우 튜닝 필요
range.
index.
all.
4.show_query_status -> last_query_cost 의 값으로 대략 튜닝해야할지 결정.
3.최적화
1.select sql_buffer_result : 쿼리 결과가 오래걸릴 경우. lock걸리는것을 방지하기 위해
테이블을 복사한후, 바로 lock을 풀어버림. 결과는 따로 작업후 돌려짐.
2.select sql_big_result : 미리 결과가 클것을 알려서 using filesort, using temporary 두 작업을 한꺼번에 처리하면서, 시간을 줄이게된다.
3.select straight_join : 테이블들의 조인순서 정하는 시간을 줄여줌.
4.select * from table (force/use/ignore) index : optimizer의 최적화 이외의 설계를 적용할때.
force : 강제, use:가능하면 사용.
5.여러개 insert시 multi-row insert를 사용해라!
'연구개발 > MYSQL' 카테고리의 다른 글
mysql { timestamp | datetime } default current_timestamp on update current_timestamp (0) | 2014.05.22 |
---|---|
MySQL 백업과 복원 (0) | 2014.05.14 |
[MySQL 5.6] TIMESTAMP and DATETIME 기능개선 (0) | 2014.05.05 |
mysql 날짜 변환 테스트 주의점 timediff 사용 오류 (0) | 2014.05.05 |
[MYSQL] TIMESTAMPDIFF (0) | 2014.05.05 |