MySQL에서 큰 SELECT WHERE IN 쿼리를 수행해야하며 신속하게 실행해야합니다. varchar 127에 기본 키가있는 1 억 개가 넘는 행이있는 테이블이 있습니다 (그럴 수 있어야합니다).큰 MySQL을 최적화 WHERE IN 문을
$ in에 5000 개의 값이있는 SELECT col1 FROM 테이블 WHERE col1 IN ($ in)을 수행합니다. 필자는 본질적으로 기본 키 col1의 테이블에있는 5,000 개의 값 중 하나를 찾아야합니다.
일반적으로 쿼리는 1 ~ 10 초가 걸리지 만 대개 약 7 ~ 8 초입니다.
varchar로 인덱싱 된 거대한 테이블에서 큰 IN 절을 사용하여 SELECTS를보다 빠르고 최적으로 수행 할 수 있습니까?
PHP와 PDO가있는 전용 서버에서 InnoDB를 사용하고 있습니다. 제안 해줘서 고마워.
'$ IN' 변수의 값을 기본 테이블에 임시 테이블로 넣으려고 했습니까? 이 테이블에 조인을하면 성능이 향상 될 수 있습니다. 또한 반환되는 행 수는 얼마입니까? 결과 집합이 꽤 큰 경우 결과 집합을 생성하는 대신 데이터를 검색하는 데 시간이 소요될 수 있습니다. –
값이 임의입니까? 다른 말로하면 WHERE 및 value
Mihai
Gordon에서 값을 추가 할 수 있습니다. 시도하지 않았으므로 상대적으로 새로운 단계이기 때문에 단계가 필요합니다. 큰 MySQL 테이블. 5,000 명 중, 일반적으로 1,000 명에서 5,000 명 정도가 반환되며, 꽤 큰 반환 세트입니다. – Guy