SQL 성능 최적화
Aug 19, 2019 am 10:30 AM머리말: 오늘은 더욱 중요한 이슈인 SQL 성능 최적화에 대해 소개해드리겠습니다.
데이터베이스를 운영할 때 어떻게 SQL 문을 더 효율적으로 만드는지는 매우 중요한 문제입니다. 아래에서는 성능 최적화 문제를 요약해 보겠습니다.
SQL 성능 최적화
1 SELECT 문은 필드 이름을 지정해야 합니다.
# 🎜🎜 #SELECT *는 불필요한 소비(CPU, IO, 메모리, 네트워크 대역폭)를 많이 증가시킵니다. 테이블 구조가 변경되면 정방향 중단도 수행됩니다. 갱신이 필요합니다. 따라서 선택 후 필드명을 직접 추가해야 합니다. 2. SQL 문에서 IN에 포함된 값은 너무 많지 않아야 합니다. MySQL에서는 IN에 대해 해당 최적화를 수행했습니다. 즉, IN의 모든 상수가 저장됩니다. 그리고 이 배열은 정렬되어 있습니다. 하지만 값이 크면 소비도 상대적으로 커지게 됩니다. 연속형 값의 경우 between을 사용하거나 대신 연결을 사용할 수 있으면 in을 사용하지 마세요.3. in과 존재하지 않음을 구별합니다.
select * from 表A where id in (select id from 表B)
select * from 表A where exists(select * from 表B where 表B.id=表A.id)
So IN은 외부 표면은 크지만 내부 표면은 작은 상황에 적합하고 EXISTS는 외부 표면은 작지만 내부 표면은 큰 상황에 적합합니다.
4. % 접두사 퍼지 쿼리는 사용하지 않는 것이 좋습니다.예: LIKE "%name" 또는 LIKE "%name% ", 이러한 종류의 쿼리는 인덱스 실패를 유발하고 전체 테이블 스캔을 수행합니다. 그러나 LIKE "name%"는 사용할 수 있습니다.
암시적 유형 변환 방지:Wher 절의 열 필드 유형이 수신 매개변수 유형과 일치하지 않는 경우 발생합니다. 유형 변환의 경우, where
5에서 매개변수 유형을 먼저 결정하는 것이 좋습니다. 조인트 인덱스의 경우 가장 왼쪽 접두사 규칙을 따릅니다. , 인덱스에는 id, name 및 school 필드가 포함됩니다. id 필드를 직접 사용하거나 id, name 순서를 사용할 수 있지만 학교는 이 인덱스를 사용할 수 없습니다.
따라서 공동 인덱스를 생성할 때는 일반적으로 사용되는 쿼리 필드가 먼저 배치되는 순서에 주의해야 합니다.
위 내용을 요약하면 다음과 같습니다. 제안 사항:1. 인덱스 필드에서 계산 작업을 피하세요.
2 not <>
3 . 인덱스 필드
3에서 is null, is null을 사용하지 마세요. 인덱스 필드에서 데이터 유형 변환을 피하세요 #🎜 🎜##. 🎜🎜#5. 인덱스 열
6에 Null 값을 사용하지 마세요. WHERE
7에 대한 문 규칙은 WHERE 절에 Null 값을 사용하지 마세요. in, not in 또는 have를 사용하거나, in, not in
8 대신에existence, not presents를 사용할 수 있습니다. 숫자 형식으로 숫자를 선언하지 말고, 숫자 형식으로 문자 값을 선언하지 마세요. 그렇지 않으면 색인이 유효하지 않습니다. # 🎜🎜#
위의 질문은 모든 사람을 위해 요약된 것입니다. 더 많은 질문이 있으면 PHP 중국어 웹사이트(https://www.php)에서 해당 튜토리얼을 방문하세요. cn/course/list/51/type/2 .html
위 내용은 SQL 성능 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











최적화를 향한 길: Java Framework의 성능 개선 여정 탐색

C++ 성능 최적화 가이드: 코드를 더욱 효율적으로 만드는 비결을 알아보세요.

성능을 최적화하기 위해 Java에서 프로파일링을 사용하는 방법은 무엇입니까?

C++를 사용하여 웹 애플리케이션의 성능을 최적화하는 방법은 무엇입니까?
