inflearn logo
강의

Course

Instructor

Intermediate-to-Advanced SQL and Practical Data Analysis 101 Problem Solving

A summary of string-related SQL functions learned quickly through practice problems

where 컬럼에 함수를 적용하는건 좋지 못하다고 들었습니다.

98

yahoo23447340

41 asked

0

강의 연습문제 where 컬럼에 함수를 래핑해서 조건을 만족하는 문제를 보았는데요, 테이블 행수가 적을 땐 문제가 안된다고 들었는데, 행 수가 많을때는 컬럼에 함수를 래핑하면 인덱스 적용 불가 및 모든 컬럼에 함수를 적용해야해서 성능이 안좋아진다고 들었는데, 선생님의 의견 궁금합니다.

sql mysql dbms/rdbms

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 트릴님께서 질문하신 내용은 SQL 최적화 관점에서의 중요한 부분입니다.

WHERE 절에서 컬럼에 함수를 적용하는 경우, 인덱스가 제대로 활용되지 않아 성능이 저하될 수 있다는 점은 많은 개발자들이 강조하는 부분입니다. 이는 각 행의 컬럼 값에 대해 함수가 매번 평가되어야 하므로, 인덱스를 통한 빠른 탐색 대신 모든 행을 탐색해야 하기 때문입니다. 이로 인해 데이터 양이 많아질수록 성능이 악화될 수 있습니다.

그러나 행의 수가 적고 제한적인 데이터셋이라면 성능 저하가 눈에 띄지 않을 수 있으며, 이 경우에는 함수를 사용해도 큰 문제는 없습니다. 그러나 실무에서는 데이터의 양이 늘어날 수 있기 때문에, 항상 성능을 염두에 두고 설계를 해야 합니다. 이를 해결하기 위해:
- 가능한 함수 적용을 줄이거나, 필요한 경우 다른 방식으로 대체할 수 있는지를 고려합니다.
- 함수 적용이 필요한 컬럼에 대해 계산된 값을 저장한 새로운 컬럼을 추가하여 사전 계산된 값을 활용하는 것도 하나의 방법입니다.

이와 관련하여 아래 유사한 질문들이 도움이 될 수 있습니다:

이 링크들은 SQL에서 인덱스 활용 및 최적화에 대해 더 깊은 이해를 도울 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

1번 문제 질문

0

6

1

3-13 리텐션 과제 제출합니다

0

10

1

부하 테스트 시 설정 관련 질문드립니다

1

23

1

build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)

0

20

1

실습 데이터(PostgreSQL 백업 파일) 관련하여 문의드립니다. (Hive 환경 실습)

0

20

2

sakila 실전 17번 문제

0

20

1

수강 완료한 강의 수료증 어떻게 받나요?

0

26

1

복합인덱스 설계 질문

0

52

1

app logs 데이터로 쿼리 연습

0

36

2

ArticleReadService 관련 질문

0

29

1

마스터패스...

0

38

1

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

69

1

[과제] 연습문제 쿼리 작성했습니다!

0

29

2

SubStack 신청 완료했습니다!

0

23

2

중고급 SQL과 실전 데이터 분석 101 문제 풀이, 13강 EXTRACT

0

110

1

28번 문제 답에대해서 질문드립니다.

0

124

1

중급 연습문제 25번

0

178

1

mysql 워크 벤치 커뮤니티 설치 중 에러

0

174

1

skill

0

235

3

sakila데이터베이스 다운했는데 값이 전부 null

0

201

1

연습문제 4번 관련

1

179

2

연습문제 37번 관련

0

202

2

연습문제 28번 관련

0

194

3

강의 내 연습문제 유형 관련

0

229

2