SQL_BIG_SELECTS란 무엇이며 MySQL에서 SQL_BIG_SELECTS가 발생하지 않도록 하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-11-11 14:07:03
원래의
979명이 탐색했습니다.

What is SQL_BIG_SELECTS and how can I avoid encountering it in MySQL?

MySQL의 SQL_BIG_SELECTS 이해

SQL_BIG_SELECTS는 매우 크고 잠재적으로 문제가 있는 SELECT 쿼리가 실행되는 것을 방지하도록 설계된 MySQL 최적화 매개변수입니다. 쿼리가 "너무 크다"고 간주되면 MySQL은 다음과 유사한 오류를 반환할 수 있습니다.

ERROR 1104: The SELECT would examine too many records and probably take a very long time.
Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok
로그인 후 복사

이 문제를 효과적으로 해결하려면 특정 질문에 대한 답변을 살펴보겠습니다.

1. "BIG SELECTS"에 대한 임계값

MySQL은 'max_join_size' 시스템 변수의 값을 기반으로 "BIG SELECT"를 결정합니다. 쿼리가 이 행 수보다 더 많은 행을 검사할 가능성이 있으면 그렇게 플래그가 지정됩니다. 현재 최대 조인 크기 설정을 보려면 '변수 표시'를 사용하세요.

2. 인덱싱 및 Big SELECT

적절한 인덱싱과 효율적인 WHERE 절을 사용하면 SQL_BIG_SELECTS 오류가 발생할 위험을 완화할 수 있습니다. 인덱스는 쿼리 실행 속도를 높이고 검사되는 행 수를 줄이는 데 도움이 됩니다. 잘 정의된 WHERE 절을 사용하면 쿼리 범위를 더욱 줄이고 불필요한 데이터 검색을 피할 수 있습니다.

3. 최후의 수단으로 SQL_BIG_SELECTS

SQL_BIG_SELECTS를 일반 솔루션으로 사용해서는 안 됩니다. 이는 지나치게 큰 쿼리로 인해 시스템 리소스가 소모되는 것을 방지하기 위한 긴급 조치입니다. 전역적으로 또는 모든 사용자에 대해 설정하지 않는 것이 좋습니다.

4. SQL_BIG_SELECTS 구성

SQL_BIG_SELECTS를 설정하려면 다음을 수행할 수 있습니다.

  • my.cnf 구성 파일을 수정하고 [mysqld] 아래에 "sql-big-selects=ON"을 추가합니다.
  • --sql-big-selects를 사용하여 서버 시작 시 설정합니다. 명령줄 옵션입니다.
  • "SET SESSION SQL_BIG_SELECTS=1" 쿼리를 사용하여 세션별로 설정합니다.

5. SQL_BIG_SELECTS의 대안

SQL_BIG_SELECTS를 사용하기 전에 다음 대안을 고려하십시오.

  • 적절한 인덱싱 및 WHERE 절을 사용하여 쿼리를 최적화하세요.
  • max_join_size 시스템을 늘리세요. 더 큰 것을 허용하는 변수 문의하세요.

위 내용은 SQL_BIG_SELECTS란 무엇이며 MySQL에서 SQL_BIG_SELECTS가 발생하지 않도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿