mysql in 구문 질문 0 4 3,630

by 은수 [MySQL] [2022.05.17 16:35:15]


안녕하십니까 mysql의 in구문에 대해서 질문이 있어서 글을 등록하게됬습니다.

오라클의 경우 in 구문의 최대 개수 제한이 1000건으로 알고있습니다. mysql도 동일하게 제한이 있는건가요??

현재 작업중인 내용에서 in구문의 1000건이상의 값을 넣고 조회한결과 원하는 값이 조회되지않습니다.

만약 제한이있다면 mysql의 설정을 바꿀 수 있는 방법이 있을까요??

서버 언어는 golang을 사용중이며 orm은 gorm을 이용하고 있습니다.

by 마농 [2022.05.17 16:47:41]

"원하는 값이 조회되지않습니다." 의 의미가 뭔가요?
조건을 잘 못 준 건 아닌지?


by 은수 [2022.05.17 18:07:37]

제가 말을 잘못했네요... 조건은 정상적으로 주었고 쿼리도 정상적인걸로 확인했습니다.

다만 1000건이상의 경우 데이터가 조회되지않고 1000건 이하의 경우 데이터가 조회가 되고있습니다.


by pajama [2022.05.17 16:56:29]

값에 상한이 없고 max_allowed_packet 설정에 따라 제한될 수 있다고 하네요.

https://stackoverflow.com/questions/4275640/mysql-in-condition-limit/4275704#4275704


by 신이만든지기 [2022.05.17 17:59:00]

eq_range_index_dive_limit 라는 시스템변수가 있는데

여기에 설정된 값을 넘어가면, 풀스캔이 되거나 의외의 다른 인덱스를 사용하게 된다고 합니다.

in 절에 많은 값을 넣을 땐 주의해야 한다고 합니다.

참고사이트 : https://pjh3749.tistory.com/288


댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입