Skip to content

[11장] 쿼리 작성 및 최적화 #13

@janeljs

Description

@janeljs
  • 기존 버전에서 sql_mode 설정 안하다가 8.0으로 버전업하면 ONLY_FULL_GROUP_BY 옵션에 주의해야 하는 이유?
    • group by 절이 사용된 문장의 select 절에는 group by 절에 명시된 컬럼과 집계함수(count, sum)만 사용 가능하도록 강제하는 옵션
    • 5.7까지는 기본값으로 비활성화되었었는데 8.0부터 활성화되었기 때문
  • lower_case_table_names 설정하면 테이블 대소문자를 운영체제 종속적이지 않게 사용 가능
  • 테이블 생성시 (`)으로 감싸지 않고 생성해보기
  • VALUES(col_name)
  • tinyint
  • p.11 true는 c언어와 달리 1만을 의미한다는 것의 의미?
  • 불리언 타입을 꼭 사용하고 싶다면 enum 타입으로 관리하는 것이 더 좋은 이유?
    • 'Y', 'N'?
  • 인덱스 앞쪽에 있는 컬럼의 selectivity가 떨어지면 in으로 변경해서 성능 개선 가능
  • key_len
  • replica 구성시 sysdate-is-now 설정해두면 쿼리 실행 시간과 관계없이 같은 값 보장 가능
  • lateral join(postgres vs mysql)
  • 성능테스트용으로 좋은 함수 - bechmark, sleep
    • 그러나 쿼리를 직접 실행하는 것과는 다른게 네트워크, 쿼리 파싱 및 최적화 비용이 1번만 수행되기 때문임

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions