최근 보스 맨의 사무실로 끌려 가서 내 쿼리 중 하나가 시스템 속도를 늦추고 있다고 말했습니다. 나는 그 때 내 WHERE
절이 1 = 1
으로 시작 되었기 때문에 그것이라고 들었다. 필자의 스크립트에서는 검색 용어 각각을 쿼리에 추가 했으므로 각 검색 용어 앞에 AND
을 붙일 수 있도록 1 = 1
을 추가했습니다. 결과를 좁히기 전에 쿼리가 전체 테이블 스캔을 수행하게된다고 들었습니다.WHERE 절 검색 시간을 테스트하는 MySQL 쿼리
나는 이것을 시험하기로 결정했다. 약 14,000 개의 레코드가있는 user
테이블이 있습니다. 쿼리는 phpmyadmin과 PuTTY를 사용하여 각각 5 회 실행되었습니다. phpmyadmin에서는 쿼리를 500 개로 제한했지만 PuTTY에서는 제한이 없습니다. 몇 가지 기본 쿼리를 시도하고 그들에 시간을 계시했다. 1 = 1
은 WHERE
절이없는 쿼리보다 쿼리가 빠르다고 생각했습니다. 이것은 라이브 데이터베이스에 있지만 결과가 상당히 일정한 것으로 보입니다.
나는 여기에 게시하여 누군가가 나를 위해 결과를 무너 뜨릴 수 있는지, 아니면 내게이 논리를 내게 설명 할 수 있는지 확인하기를 바랬다.
결과가 더 빠르면 문제가되지 않습니다. 데이터를 느리게 분석 했습니까? 시간을 지키기 위해 무엇을 사용 했습니까? – VoodooChild
나는 사람들이 WHERE 절에서 1 = 1을 사용하는 것에 대해 어떻게 생각하는지 보게된다.네가 맞아. 내 결과에서 더 빨라 보이는 것 같아. 그게 날 행복하게 해줄거야.하지만 나는 정당화를 원할거야. 어느 프로그램에서든 쿼리가 실행 된 후 "Query x seconds seconds"라고 표시됩니다. 나는 그것이 충분할 것이라고 생각했다. –