범위 (특히 몇 년)로 표시된 매개 변수를 기반으로 대형 테이블에서 행을 가져 오는 쿼리를 디자인하고 있습니다. 3 가지 특정 값 (예 : 고객 번호가 # 001, # 002 및 # 003 인 고객 레코드를 가져옴)을 기반으로 행을 가져 오려는 경우가 있습니다.mysql에서 범위를 쿼리하는 가장 좋은 방법
IN() 간의
()
: 빨리 다른 사람보다 작동 WHERE 문 뒤에 조건에 대한 구문이있을 경우 범위의 질문에 대한
가 궁금하네요 high.range> = data> = low.rangeIN() 옵션의 경우, 연도를 low.range부터 high.range까지의 연도 목록으로 변환하는 스크립트를 작성할 수 있습니다. 따라서 2000 년에서 2004 년 사이에는 IN ('2000', '2001', '2002', '2003', '2004')이됩니다. 이것은 MySQL 외부의 추가 프로그래밍 단계 일 것이지만, 그렇게하는 것이 어렵지 않습니다.
나는 클러스터 된 인덱스를 사용하는 것처럼 처리 속도를 높이기 위해 할 수있는 다른 일이 있다는 것을 알고 있지만, WHERE 문 다음에 사용할 SQL 구문과의 차이점이 있는지 확인하려고했다.
나는 그것을 테스트하지는 않았지만, 당신이 필요로하는 것을 정확하게 수행하기 때문에'BETWEEN'은 더 빠르고 (관용적 인) 선택이라는 것을 이미 상상할 것입니다. –
필자가 아는 한, 'between'문법은'a <= b <= c' 버전을 대체하는 방법 일뿐입니다. 데이터베이스 유형에 관계없이 내부적으로 동일하게 작동해야합니다. –