소프트웨어 엔지니어링을 비롯한 엔지니어링 분야에서는 추측하는 대신 결과를 측정해야합니다 (또는 인터넷 사용자에게 올바른 일을 말하도록 요청하는 것).
검색 할 값이 주어지면 EXPLAIN을 사용하여 SQL 데이터베이스가 다른 쿼리를 최적화하는 방법을 찾아야합니다.
0이있는 행과 1이있는 행의 불균형 수가 같기 때문에 데이터베이스가 하나 또는 다른 값을 검색하는 쿼리를 최적화하는 방법에 큰 차이가있을 것입니다.
어쨌든 행의 99 %를 방문한다고 가정 할 때 색인을 읽는 오버 헤드가 1 일 경우 낭비가 될 수 있습니다. 그래서 좋은 옵티마이 저는 인덱스를 건너 뛰고 일치하지 않는 행의 소수만을 버리고 테이블을 직접 읽어야합니다.
그러나 소수 값 0을 검색하면 옵티마이 저는 인덱스를 사용하면 유익하다는 것을 알 수 있습니다.
EXPLAIN을 사용하여이를 확인하십시오. EXPLAIN을 사용하여 두 가지 쿼리 (0을 검색하고 1을 검색)를 시도하고 옵티마이 저의 계획에서 차이점을 확인하십시오.
사용중인 SQL 데이터베이스의 브랜드에 대해 구체적이지 않기로 결정했기 때문에 EXPLAIN의 구문이 모호합니다. "sql"및 "database-indexes"는 질문 만했지만 "sql-server"또는 "mysql"또는 "postgresql"또는 사용중인 모든 것을 태그하지 않았습니다.
EXPLAIN은 표준 SQL 언어의 일부가 아니므로 각 데이터베이스는 EXPLAIN을 약간 다르게 구현합니다. 특정 답변은 사용하는 SQL 데이터베이스에 따라 다릅니다.
어떤 RDMS를 사용하고 있습니까? SQL 서버에서 필터링 된 인덱스를 사용할 수 있습니다. – Kevin