이 기사는 MySQL의 select 및 where 절 최적화에 대한 요약을 제공합니다. 이는 특정 참조 값을 가지고 있으므로 도움이 될 수 있습니다.
데이터베이스 최적화:
1. 최적화는 단일 SQL 문, 전체 애플리케이션, 단일 데이터베이스 서버 또는 여러 네트워크 데이터베이스 서버 수준에서 수행될 수 있습니다.
2. 데이터베이스 성능은 데이터베이스의 여러 요소에 따라 달라집니다. 테이블, 쿼리 및 구성 설정과 같은 수준
3. 데이터베이스 수준에서 최적화, 하드웨어 수준에서 최적화, 이식성과 성능의 균형
4. 적합한 구조, 많은 수의 테이블로 빈번한 업데이트를 수행하는 적합한 데이터 유형( 소수의 열) ); 소수의 테이블(여러 열)로 대량의 데이터를 분석하는 애플리케이션. 적절한 스토리지 엔진 및 인덱스를 선택하세요.
5. 압축은 읽기 전용 MyISAM 테이블뿐만 아니라 다양한 워크로드에도 적합합니다. . 적절한 잠금 전략을 선택하세요. InnoDB 스토리지 엔진은 대부분의 잠금 문제를 처리할 수 있습니다
7. 구성된 기본 메모리 영역은 InnoDB 버퍼 풀과 MyISAM 키 캐시입니다.
8. 이 기술은 where 절의 열에 인덱스를 설정하는 데에도 적용할 수 있습니다. 인덱스는 조인 및 외래 키와 같은 여러 열을 참조하는 데 특히 중요합니다. sub 문장 최적화:
1. 함수 호출 등 쿼리의 구조를 조정하고, 결과 집합의 각 행에 대해 한 번만 호출하고, 테이블의 각 행에 대해 한 번만 호출합니다. 2. 쿼리에서 전체 테이블 스캔
3. 정기적으로 ANALYZE TABLE 문을 사용하여 테이블 통계를 최신 상태로 유지
5. InnoDB에 대한 단일 쿼리 트랜잭션 최적화 테이블
6. EXPLAIN 계획을 읽고 인덱스, WHERE 절, 조인 절 등을 조정하여 특정 쿼리의 내부 세부 정보를 조사합니다.
7. MySQL에서 캐싱에 사용하는 메모리 영역의 크기와 속성을 조정합니다. InnoDB 버퍼 풀, MyISAM 키 캐시 및 MySQL 쿼리 캐시
8.where 조건을 효과적으로 사용하여 불필요한 괄호 제거, 상수 접기, 상수 조건 제거, 불필요한 논리 감소
9 인덱스에서 사용하는 상수 표현식은 한 번만 계산됩니다. 10.count(*)는 테이블 정보에서 직접 쿼리합니다. 테이블이 하나만 있는 경우 GROUP BY 또는 집계 함수(COUNT(), MIN()를 사용하지 않는 경우에도 마찬가지입니다. 등), HAVING은 WHERE
12와 병합됩니다. 단 하나의 행 또는 빈 테이블입니다. 여기서 절은 기본 키 또는 고유 인덱스에 적용됩니다
13. table, 그러면 연결할 때 테이블이 선호됩니다
14. order by 절과 group by 절이 다르거나 다른 테이블과 다를 경우 임시 테이블이 생성됩니다
15 SQL_SMALL_RESULT 수정자를 사용하면 MySQL은 다음을 사용합니다. 임시 메모리 테이블
16. MySQL은 데이터 파일을 참조하지 않고도 인덱스에서 행을 읽을 수 있습니다.
17. 각 행을 출력하기 전에 HAVING 절과 일치하지 않는 행은 건너뜁니다.
다음 테이블은 상수로 사용됩니다. 테이블:
SELECT * FROM t WHERE primary_key=1; SELECT * FROM t1,t2 WHERE t1.primary_key=1 AND t2.primary_key=t1.id;
SELECT COUNT(*) FROM tbl_name; SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name; SELECT MAX(key_part2) FROM tbl_name WHERE key_part1=constant; SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,... LIMIT 10; SELECT ... FROM tbl_name ORDER BY key_part1 DESC, key_part2 DESC, ... LIMIT 10;인덱스 열이 숫자라고 가정하면 다음 쿼리는 인덱스 트리만 사용합니다.
SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val; SELECT COUNT(*) FROM tbl_name WHERE key_part1=val1 AND key_part2=val2; SELECT key_part2 FROM tbl_name GROUP BY key_part1;
위 내용은 mysql의 select 및 where 절 최적화 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!