반응형

[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|작성자 줄리

반응형

+ Recent posts