issues
search
Jane-s-Lab
/
books
since 2022.04.28
0
stars
0
forks
source link
[11장] 쿼리 작성 및 최적화
#13
Open
janeljs
opened
2 years ago
janeljs
commented
2 years ago
기존 버전에서 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)
https://tomining.tistory.com/198
https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
tinyint
https://heavening.tistory.com/85
p.11 true는 c언어와 달리 1만을 의미한다는 것의 의미?
불리언 타입을 꼭 사용하고 싶다면 enum 타입으로 관리하는 것이 더 좋은 이유?
'Y', 'N'?
인덱스 앞쪽에 있는 컬럼의 selectivity가 떨어지면 in으로 변경해서 성능 개선 가능
key_len
쿼리를 처리하기 위해 다중 칼럼으로 구성된 인덱스에서 몇개의 칼럼까지 사용했는지
https://weicomes.tistory.com/151
https://stackoverflow.com/questions/7643491/understanding-mysql-key-len-in-explain-statement
replica 구성시 sysdate-is-now 설정해두면 쿼리 실행 시간과 관계없이 같은 값 보장 가능
lateral join(postgres vs mysql)
성능테스트용으로 좋은 함수 - bechmark, sleep
그러나 쿼리를 직접 실행하는 것과는 다른게 네트워크, 쿼리 파싱 및 최적화 비용이 1번만 수행되기 때문임