찾다
데이터 베이스MySQL 튜토리얼MySQL 성능 최적화로 데이터베이스 실행 속도 향상



데이터베이스 최적화 작업에서는 테이블이 큰 공간을 차지하도록 데이터를 최대한 작게 만듭니다. 공간을 가능한 한 작게 유지하는 것은 가장 일반적으로 사용되는 가장 효과적인 방법 중 하나입니다. 데이터가 줄어들기 때문에 하드 디스크의 읽기 및 쓰기 속도가 상대적으로 향상될 수 있으며 쿼리 프로세스 중 작은 테이블의 콘텐츠 처리는 시스템 리소스를 덜 차지합니다. 마찬가지로 인덱스가 더 작은 열에 설정되면 인덱스가 차지하는 리소스도 줄어듭니다. 그렇다면 데이터베이스 관리자는 어떻게 자신의 데이터에 대한 무게를 줄일 수 있습니까? 저자는 이에 대해 다음과 같은 제안을 합니다.

제안 1: Null 값이 반드시 공간을 차지하지는 않습니다

여기서 먼저 약간의 읽기 능력을 알려드리겠습니다. 일부 데이터베이스 관리자는 null 값이 시스템 리소스를 차지하지 않을 것이라고 생각합니다. 사실 이는 잘못된 이해입니다. 데이터베이스를 설계할 때 필드 속성을 NOT NULL로 설정하는 것을 좋아하지 않습니다. 사용자가 필요에 따라 데이터를 입력할 수 있습니다. 저자는 이러한 접근 방식이 데이터베이스 성능에 해롭다고 생각합니다

가능하다면 열을 NOT NULL로 설정해 보세요. 즉, null 값이 허용되지 않습니다. 이렇게 하면 후속 처리 속도가 빨라지는 동시에 데이터 저장 측면에서 열당 1비트가 절약되어 데이터 경량화 목적을 달성할 수 있습니다. 실제 작업에서 사용자가 데이터를 입력할 필요가 없는 상황이 있는 경우 비어 있지 않은 목적을 달성하기 위해 기본 필드를 사용할 수도 있습니다. 예를 들어 급여 시스템에서 사용자의 근무 연도는 기본적으로 공백이 아닌 0으로 설정될 수 있습니다. 물론, 정말로 NULL이 필요한 경우에는 방법이 없습니다. 그러나 데이터베이스 엔지니어로서 NULL 값을 사용하지 않도록 노력해야 합니다.

제안 2: 가능한 한 작은 데이터 유형을 사용하세요.

데이터 유형의 크기는 기본 테이블의 크기에도 영향을 미칩니다. 예를 들어 MEDIUMINT 및 INT 두 데이터 유형을 사용하여 정수 데이터를 저장할 수 있지만 저장할 수 있는 정밀도는 다릅니다. 하지만 데이터 저장 측면에서 전자는 후자에 비해 약 25% 정도 적은 저장 공간을 필요로 한다. 이러한 이유로 MEDIUMINT를 사용할 수 있는 경우 INT를 사용하지 마십시오.

또한 데이터 길이를 정의할 때 요구사항을 충족하면서 최대한 짧아야 합니다. 예를 들어, 급여 평가 시스템에는 직원 코딩 필드가 있습니다. 기업 사원 코드가 결정된 경우 5자로 구성됩니다. 그러면 필드를 정의할 때 길이를 5자만 정의하면 됩니다. 이는 저장 공간을 줄일 수 있을 뿐만 아니라 특정 데이터 교정 기능도 수행할 수 있습니다. 사용자가 입력한 코드 길이가 5자리를 초과하면 데이터를 저장할 수 없습니다.

특정 데이터를 저장할 때 선택할 수 있는 데이터 유형은 많지만 비교적 많은 수의 문자를 정의할 수도 있습니다. 그러나 가능한 한 가장 작은 데이터 유형을 선택하면 데이터 저장 공간을 줄이고 데이터 경량화 목적을 달성하는 데 도움이 될 수 있습니다. 이를 통해 데이터베이스 성능이 더욱 향상됩니다.

제안 3: 인덱스와 데이터 테이블 크기의 관계

글쓴이는 상대적으로 작은 열에 인덱스를 설정하면 인덱스가 리소스를 덜 차지한다고 글 초반에 언급했습니다. 인덱스는 데이터 테이블의 크기와도 밀접한 관련이 있음을 알 수 있다. 적절한 인덱스를 적절한 장소와 적절한 시기에 설정하는 것도 데이터 체중 감량의 목적을 달성할 수 있습니다.

평소와 마찬가지로 각 데이터 테이블에는 여러 개의 인덱스가 있을 수 있지만 기본 인덱스는 하나만 있는 경우가 많습니다. 이러한 이유로 각 테이블의 기본 인덱스는 최대한 짧고 간결하게 유지되어야 합니다. 이는 데이터베이스가 이를 더 빠르게 식별하는 데 도움이 될 수 있습니다.

또 다른 예는 접두어를 최대한 많이 색인화하는 것입니다. 예를 들어, 현재 테이블이 있다면 특정 열에 인덱스를 설정해야 합니다. 그리고 이 열에는 특징이 있습니다. 즉, 처음 몇 글자에 고유한 접두어가 있다는 것입니다. 이런 경우에는 모든 접두사를 색인하는 것보다 이 접두사를 긴밀하게 색인화하는 것이 더 좋습니다. MySQL 데이터베이스에서는 문자 열의 가장 왼쪽 부분에 인덱스를 생성하는 기능을 지원합니다. 이는 데이터베이스가 특정 규칙에 따라 필드를 두 부분으로 분할한다는 의미입니다. 분할 후에도 앞부분의 데이터가 고유하게 유지될 수 있는 경우 앞부분에만 인덱스를 설정하면 되며 전체 필드의 데이터에 대해서는 인덱스를 설정할 필요가 없습니다. 이는 의심할 여지없이 인덱스가 차지하는 자원을 줄이고 체중 감량 목적을 달성할 수 있습니다. 인덱스가 짧을수록 쿼리 속도가 더 빨라집니다. 하드 드라이브 공간을 덜 차지하고 인덱스 캐시에 더 많은 액세스를 저장하기 때문입니다. 이렇게 하면 하드 디스크 검색 횟수가 줄어들고 쿼리 효율성이 향상됩니다.

마지막으로 주의할 점은 인덱스를 남용할 수 없다는 점입니다. 인덱스를 사용하면 실제로 데이터 처리 기능이 향상될 수 있지만 인덱스를 사용하면 추가 오버헤드도 발생합니다. 이점이 오버헤드보다 클 때만 인덱스를 사용하면 데이터베이스 성능을 향상시킬 수 있습니다. 그렇지 않으면 반대 효과가 발생합니다. 예를 들어, 테이블을 빠르게 저장해야 하는 경우, 테이블에 너무 많은 인덱스를 설정하면 인덱스에 부작용이 발생합니다. 이에 저자는 주로 검색 컬럼의 조합을 통해 테이블에 접근하는 경우에는 인덱스를 하나만 설정하는 것이 가장 좋다고 제안한다. 물론 이 인덱스 부분은 일상 업무에서 가장 일반적으로 사용되는 열이어야 합니다. 최후의 수단으로 여러 인덱스를 사용해야 하는 경우 더 많은 복사본이 있는 열을 사용하여 더 나은 인덱스 압축을 얻는 것이 가장 좋습니다. 이렇게 하면 여러 인덱스를 사용하여 발생하는 리소스 소비 증가가 줄어듭니다.

제안 4: 그래도 배불러야 할 부분은 빼놓을 수 없다

여자는 날씬해야 할 곳은 날씬해야 하고, 통통해야 할 곳은 통통해야 한다 그녀는 통통해야합니다. 실제로 데이터베이스의 경우에도 마찬가지입니다. 하드 드라이브 공간을 절약할 수 있는 곳에 저장하십시오. 그리고 살을 빼기 위해서는 절약할 수 없는 것을 합리화할 수 없습니다. 때로는 이것이 역효과를 낳을 수도 있습니다.

저자는 Varchar를 예로 든다. MyISAM과 마찬가지로 가변 길이 열이 없으면 고정 크기 데이터 유형을 사용하는 것이 좋습니다. 고정 길이 데이터 유형을 사용하더라도 일정량의 저장 공간이 낭비되는 경우가 많습니다. 사용자가 입력한 데이터가 부족하여 고정 길이를 사용하는 경우 데이터는 여전히 이 고정 길이로 저장되기 때문입니다. 하지만 이 경우 고정 길이를 사용할 수 있다면 여전히 고정 길이를 사용해야 합니다. 이 경우 일정량의 하드 디스크 공간이 낭비되더라도 데이터 쿼리 속도를 향상시킬 수 있기 때문입니다.

어떤 상황에서도 데이터의 무게 손실이 데이터베이스 성능을 향상시킬 수 없다는 것을 알 수 있습니다. 이는 비용을 절감하고 수익을 늘리는 것과 같으며 이러한 절감액은 최첨단에 저장되어야 합니다. 그렇지 않으면 돈을 절약할 수 없을 뿐만 아니라 발에 총을 쏘게 될 것입니다. 일반인의 말로는 날씬해야 할 곳은 날씬하고, 통통해야 할 곳은 통통해야 한다는 것입니다. 이 문장만 기억하세요.

제안 5: 체중 감량 목적을 위해 테이블을 나누세요

개미가 먹이를 옮길 때 먹이 조각이 너무 커서 움직일 수 없으면 개미는 움직일 수 있을 때까지 먹이 조각을 나눌 수 있습니다. 이것이 케이크를 나누는 원리입니다. 실제로 이런 현상은 일상 업무에서 흔히 볼 수 있는 현상이다. 예를 들어 데이터베이스 테이블이 있고 그 안에 레코드가 많으면 테이블에 허용되는 속도가 매우 느려집니다. 이 경우 테이블은 특정 규칙에 따라 여러 통합 문서로 나눌 수 있습니다. 예를 들어 이제 기업 직원의 출석 정보 사본이 있습니다. 이 테이블을 쿼리하고 정렬하고 계산할 때 대기 시간이 매우 깁니다. 이때 부서별로 서로 다른 워크북으로 나누어 관련 데이터 분석을 수행할 수 있습니다. 이때 작업량은 더 커지지만 처리 속도는 훨씬 빨라질 것입니다

이 원칙에 따르면 데이터베이스를 최적화할 때 자주 스캔되는 큰 테이블을 2개 이상으로 분할하여 표현할 수 있습니다. 매우 도움이 됩니다. 예를 들어 일상 업무에는 이제 동적 형식의 데이터 테이블이 있고 이 데이터가 스캔 테이블을 사용할 때 이를 사용하여 관련 행의 비교적 작은 정적 형식 테이블을 찾습니다.

이 테이블 분할을 통해 큰 케이크를 여러 개의 작은 케이크로 나누어 후속 데이터 통계 및 분석을 용이하게 할 수 있습니다. 물론, 이 효과의 품질은 이 분할 규칙과 직접적인 관련이 있습니다. 원하는 효과를 얻기 위해 테이블을 분할하는 방법과 관련하여 이는 또 다른 비교적 큰 주제입니다. 여기에서는 지면이 제한되어 있으므로 저자는 많은 설명을 하지 않을 것입니다. 아마도 후속 기사에서 저자는 이 제안을 확장하고 자세한 설명을 제공할 것입니다.

위 내용은 데이터베이스 실행 속도를 높이기 위한 MySQL 성능 최적화 내용입니다. 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
산성 특성 (원자력, 일관성, 분리, 내구성)을 설명하십시오.산성 특성 (원자력, 일관성, 분리, 내구성)을 설명하십시오.Apr 16, 2025 am 12:20 AM

산성 속성에는 원자력, 일관성, 분리 및 내구성이 포함되며 데이터베이스 설계의 초석입니다. 1. 원자력은 거래가 완전히 성공적이거나 완전히 실패하도록합니다. 2. 일관성은 거래 전후에 데이터베이스가 일관성을 유지하도록합니다. 3. 격리는 거래가 서로를 방해하지 않도록합니다. 4. 지속성은 거래 제출 후 데이터가 영구적으로 저장되도록합니다.

MySQL : 데이터베이스 관리 시스템 대 프로그래밍 언어MySQL : 데이터베이스 관리 시스템 대 프로그래밍 언어Apr 16, 2025 am 12:19 AM

MySQL은 데이터베이스 관리 시스템 (DBMS) 일뿐 만 아니라 프로그래밍 언어와 밀접한 관련이 있습니다. 1) DBMS로서 MySQL은 데이터를 저장, 구성 및 검색하는 데 사용되며 인덱스 최적화는 쿼리 성능을 향상시킬 수 있습니다. 2) SQL과 같은 ORM 도구를 사용하여 Python에 내장 된 SQL과 프로그래밍 언어를 결합하면 작업을 단순화 할 수 있습니다. 3) 성능 최적화에는 인덱싱, 쿼리, 캐싱, 라이브러리 및 테이블 부서 및 거래 관리가 포함됩니다.

MySQL : SQL 명령으로 데이터 관리MySQL : SQL 명령으로 데이터 관리Apr 16, 2025 am 12:19 AM

MySQL은 SQL 명령을 사용하여 데이터를 관리합니다. 1. 기본 명령에는 선택, 삽입, 업데이트 및 삭제가 포함됩니다. 2. 고급 사용에는 조인, 하위 쿼리 및 집계 함수가 포함됩니다. 3. 일반적인 오류에는 구문, 논리 및 성능 문제가 포함됩니다. 4. 최적화 팁에는 인덱스 사용, 선택*을 피하고 한계 사용이 포함됩니다.

MySQL의 목적 : 데이터를 효과적으로 저장하고 관리합니다MySQL의 목적 : 데이터를 효과적으로 저장하고 관리합니다Apr 16, 2025 am 12:16 AM

MySQL은 데이터 저장 및 관리에 적합한 효율적인 관계형 데이터베이스 관리 시스템입니다. 장점에는 고성능 쿼리, 유연한 트랜잭션 처리 및 풍부한 데이터 유형이 포함됩니다. 실제 애플리케이션에서 MySQL은 종종 전자 상거래 플랫폼, 소셜 네트워크 및 컨텐츠 관리 시스템에서 사용되지만 성능 최적화, 데이터 보안 및 확장성에주의를 기울여야합니다.

SQL 및 MySQL : 관계 이해SQL 및 MySQL : 관계 이해Apr 16, 2025 am 12:14 AM

SQL과 MySQL의 관계는 표준 언어와 특정 구현의 관계입니다. 1.SQL은 관계형 데이터베이스를 관리하고 운영하는 데 사용되는 표준 언어로, 데이터 추가, 삭제, 수정 및 쿼리를 허용합니다. 2.MySQL은 SQL을 운영 언어로 사용하고 효율적인 데이터 저장 및 관리를 제공하는 특정 데이터베이스 관리 시스템입니다.

InnoDB Redo Logs 및 Undo Logs의 역할을 설명하십시오.InnoDB Redo Logs 및 Undo Logs의 역할을 설명하십시오.Apr 15, 2025 am 12:16 AM

InnoDB는 Redologs 및 Undologs를 사용하여 데이터 일관성과 신뢰성을 보장합니다. 1. Redologs는 사고 복구 및 거래 지속성을 보장하기 위해 데이터 페이지 수정을 기록합니다. 2. 결점은 원래 데이터 값을 기록하고 트랜잭션 롤백 및 MVCC를 지원합니다.

설명 출력 (유형, 키, 행, 추가)에서 찾아야 할 주요 메트릭은 무엇입니까?설명 출력 (유형, 키, 행, 추가)에서 찾아야 할 주요 메트릭은 무엇입니까?Apr 15, 2025 am 12:15 AM

설명 명령에 대한 주요 메트릭에는 유형, 키, 행 및 추가가 포함됩니다. 1) 유형은 쿼리의 액세스 유형을 반영합니다. 값이 높을수록 Const와 같은 효율이 높아집니다. 2) 키는 사용 된 인덱스를 표시하고 NULL은 인덱스가 없음을 나타냅니다. 3) 행은 스캔 한 행의 수를 추정하여 쿼리 성능에 영향을 미칩니다. 4) Extra는 최적화해야한다는 Filesort 프롬프트 사용과 같은 추가 정보를 제공합니다.

설명에서 임시 상태를 사용하고 피하는 방법은 무엇입니까?설명에서 임시 상태를 사용하고 피하는 방법은 무엇입니까?Apr 15, 2025 am 12:14 AM

Temporary를 사용하면 MySQL 쿼리에 임시 테이블을 생성해야 할 필요성이 있으며, 이는 별개의, 그룹 비 또는 비 인덱스 열을 사용하여 순서대로 발견됩니다. 인덱스 발생을 피하고 쿼리를 다시 작성하고 쿼리 성능을 향상시킬 수 있습니다. 구체적으로, 설명 출력에 사용되는 경우, MySQL은 쿼리를 처리하기 위해 임시 테이블을 만들어야 함을 의미합니다. 이것은 일반적으로 다음과 같은 경우에 발생합니다. 1) 별개 또는 그룹을 사용할 때 중복 제거 또는 그룹화; 2) OrderBy가 비 인덱스 열이 포함되어있을 때 정렬하십시오. 3) 복잡한 하위 쿼리 또는 조인 작업을 사용하십시오. 최적화 방법은 다음과 같습니다. 1) Orderby 및 GroupB

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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