이해해야 하는 이유 설명:
선택 쿼리의 내부 상황, 쿼리 최적화 프로그램의 작동 방식, 인덱싱에 관해서는 explain을 사용하면 됩니다.
MySQL 쿼리 최적화 프로그램의 작동 방식:
MySQL 쿼리 최적화 프로그램에는 여러 가지 목표가 있지만 그 중 주요 목표는 목표는 가능할 때마다 색인을 사용하고 가능한 한 가장 엄격한 색인을 사용하여 최대한 많은 데이터 행을 제거하는 것입니다. 궁극적인 목표는 SELECT 문을 제출하여 데이터 행을 제외하는 것이 아니라 데이터 행을 찾는 것입니다. 옵티마이저가 행을 제외하려고 시도하는 이유는 행을 제외하는 속도가 빠를수록 조건과 일치하는 행을 더 빨리 찾을 수 있기 때문입니다. 가장 엄격한 테스트를 먼저 수행하면 쿼리가 더 빠르게 실행될 수 있습니다.
1.설명 10개의 속성 매개변수가 있습니다.
2. EXPLAIN 컬럼 설명:
1.id: 선택한 실행 계획에서 시퀀스 번호 를 쿼리했습니다. 쿼리에서 select 절이나 작업 테이블이 실행되는 순서를 나타냅니다. id 값이 클수록 우선 순위가 높고 일찍 실행됩니다. ID는 동일하며, 실행 순서는 위에서 아래로 입니다.
2.select_type: 쿼리 유형, 설명 :
3.table: 이 행 표시 어떤 테이블에 관한 데이터인가요? 연결이 사용하는
유형을 보여주는 중요한 열입니다. 최상의 조인 유형부터 최악의 조인 유형은 const, eq_reg, ref, range, index 및 ALL 5.possible_keys: 표시가능이 테이블에 적용된 색인 입니다. 비어 있으면 인덱스를 사용할 수 없습니다. WHERE 문 6.key에서 적절한 문을 선택할 수 있습니다. > 실제 사용된 인덱스입니다. NULL인 경우 인덱스가 사용되지 않습니다. MYSQL이 최적화되지 않은 인덱스를 선택하는 경우는 거의 없습니다. 이 경우 SELECT 문에서 USEINDEX(indexname)를 사용하여 강제로 인덱스를 사용하거나 IGNORE를 사용할 수 있습니다.
INDEX(indexname)는 MYSQL이 인덱스 7.key_len: 에서 사용하는 인덱스 의 길이입니다. 길이가 짧을수록 정확도가 떨어지지 않고 좋습니다 8.ref : 인덱스의 중 어떤 열이 사용되는지 표시합니다. 는 가능하면 상수입니다 9.rows: MYSQL이 요청한 데이터를 반환하기 위해 확인해야 한다고 생각하는 행의 수 10.추가: MYSQL이 쿼리를 구문 분석하는 방법에 대한 추가 정보. 여기서 볼 수 있는 나쁜 예는 다음과 같습니다.
임시 및 filesort를 사용하면 MYSQL이 인덱스를 전혀 사용할 수 없으므로 검색 속도가 매우 느려지므로 피해야 합니다. 분명히 유형이 ALL인 경우 최악의 경우입니다. filesort를 사용하는 것은 Extra에도 나타나며, 이 또한 최악의 경우이므로 최적화가 필요합니다. 설명을 사용하여 설명을 최적화해야 하는지 확인하시겠습니까? 위 내용은 Mysql 분석-설명에 대한 자세한 소개입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!