테이블을 생성할 때 테이블의 스토리지 엔진인 테이블의 유형을 지정할 수 있습니다. 테이블의 스토리지 엔진은 데이터가 저장되고 액세스되는 방식과 트랜잭션이 저장되는 방식을 결정합니다. 테이블의 스토리지 엔진은 SQL 문을 처리하는 데 필요한 스토리지 공간과 속도에 큰 영향을 미칩니다. 다양한 스토리지 엔진은 서로 다른 특성을 가지고 있습니다. 일부 스토리지 엔진은 많은 복잡한 SELECT 문을 처리하는 데 매우 적합한 반면, 다른 스토리지 엔진은 빠른 업데이트를 달성하는 데 더 적합합니다.
InnoDB
InnoDB는 MySQL의 기본 트랜잭션 엔진이자 가장 중요하고 널리 사용되는 스토리지 엔진입니다. 다수의 단기 트랜잭션을 처리하도록 설계되었습니다. 단기 트랜잭션은 대부분의 경우 정상적으로 제출되며 거의 롤백되지 않습니다. InnoDB의 성능과 자동 충돌 복구 기능은 비트랜잭션 스토리지 요구 사항에 널리 사용됩니다.
다른 스토리지 엔진을 사용해야 하는 아주 특별한 이유가 없는 한 InnoDB 엔진을 우선적으로 사용해야 합니다. ————"고성능 MySQL"
InnoDB는 MVCC를 사용하여 높은 동시성을 지원하고 4가지 표준 격리 수준을 구현합니다. 기본 수준은 REPEATABLE READ이며 간격 잠금 전략은 팬텀 읽기를 방지합니다.
InnoDB는 클러스터형 인덱스 기반의
이 외래 키 제약 조건을 지원함을 나타냅니다.
열 AUTO_INCREMENT 속성의 자동 추가를 지원합니다.
업무. InnoDB 스토리지 엔진은 트랜잭션을 지원하는 표준 MySQL 스토리지 엔진입니다.
인덱스를 삭제하거나 추가할 때 테이블 데이터 전체를 복사할 필요가 없습니다.
InnoDB는 디스크에서 데이터를 읽을 때 예측 가능한 미리 읽기, 메모리에 해시 인덱스를 자동으로 생성하여 작업 속도를 높이는 등 다양한 내부 최적화를 수행했습니다. 삽입 작업 속도를 높이는 삽입 버퍼입니다.
InnoDB 테이블은 클러스터형 인덱스를 기반으로 구축됩니다. InnoDB의 인덱스 구조는 다른 MySQL 엔진과 매우 다릅니다. 클러스터형 인덱스는 기본 키 쿼리에 대한 성능이 높습니다. 그러나 보조 인덱스에는 기본 키 열이 포함되어야 하므로 기본 키 열이 크면 다른 모든 인덱스도 커집니다. 따라서 테이블에 인덱스가 많으면 기본 키는 최대한 작아야 합니다.
MyISAM
MyISAM은 전체 텍스트 인덱싱, 압축, 공간 함수(GIS) 등을 포함한 많은 기능을 제공하지만 MyISAM은 트랜잭션 및 행 수준 잠금을 지원하지 않습니다. 그리고 충돌 후에는 안전하게 복원할 수 없다는 것이 단점입니다. MySQL 5.1 및 이전 버전에서는 MyISAM이 기본 스토리지 엔진입니다. MySQL이 오랫동안 트랜잭션을 지원했음에도 불구하고 MySQL은 여전히 많은 사람들이 생각하는 비트랜잭션 데이터베이스입니다.
MyISAM은 행이 아닌 전체 테이블을 잠급니다.
전체 텍스트 색인 생성을 지원합니다.
압축 테이블을 지원합니다. 압축된 테이블은 수정할 수 없으며 디스크 공간 사용량을 크게 줄여 디스크 I/O 작업을 줄이고 쿼리 성능을 향상시킬 수 있습니다.
저장소
MyISAM은 테이블을 두 개의 파일, 즉 데이터 파일과 인덱스 파일에 각각 .MYD 및 .MYI 확장자로 저장합니다. MyISAM 테이블에는 동적 또는 정적 행이 포함될 수 있습니다. MySQL은 테이블 정의에 따라 사용할 행 형식을 결정합니다.
MyISAM 테이블에 가변 길이 행이 있는 경우 기본 구성에서는 256TB의 데이터만 처리할 수 있습니다.
특징
MySQL의 최초 스토리지 엔진 중 하나로, 아직 몇 가지 기능이 있습니다.
잠금 및 동시성 – 테이블 잠금
MyISAM은 행이 아닌 전체 테이블을 잠급니다. 읽기 시에는 읽어야 하는 모든 테이블에 공유 잠금이 추가되고, 쓰기 시에는 테이블에 배타적 잠금이 추가됩니다. 그러나 테이블에 읽기 쿼리가 있는 동안 새 레코드를 테이블에 삽입할 수도 있습니다(동시 삽입).
복구
MyISAM 테이블의 경우 MySQL은 검사 및 유지 관리 작업을 수동 또는 자동으로 수행할 수 있지만 여기서 언급하는 복구는 트랜잭션 복구 및 충돌 복구와는 다른 개념입니다.
인덱스 기능
MyISAM 테이블의 경우 BLOB 및 TEXT와 같은 긴 필드도 처음 500자를 기반으로 인덱스를 생성할 수 있습니다. MyISAM은 또한 단어 분할을 기반으로 생성된 인덱스인 전체 텍스트 인덱싱을 지원하며 복잡한 쿼리를 지원할 수 있습니다.
인덱스 키 업데이트 지연
MyISAM 테이블을 생성할 때 DELAY_KEY_WRITE 옵션을 지정하면 수정된 인덱스 데이터가 각 수정이 완료될 때 즉시 디스크에 기록되지 않습니다.
MyISAM 성능
MyISAM 엔진은 단순하게 설계되었으며 데이터가 컴팩트한 형식으로 저장되므로 특정 시나리오에서의 성능이 매우 좋습니다. 그러나 테이블 잠금의 존재는 성능에 큰 영향을 미칩니다.
아카이브 엔진
아카이브 스토리지 엔진은 INSERT와 SELECT만 지원합니다. 아카이브 엔진은 모든 쓰기를 캐시하고 zlib를 사용하여 삽입을 압축하므로 MyISAM 테이블보다 디스크 I/O가 덜 필요합니다. 그러나 모든 SELECT 쿼리는 전체 테이블 스캔을 수행해야 합니다. 따라서 Archive 테이블은 데이터 분석을 위해 전체 테이블 스캔이 필요한 로그 및 데이터 수집 애플리케이션에 적합합니다.
아카이브 엔진은 행 수준 잠금 및 전용 버퍼를 지원하므로 동시성 높은 삽입이 가능합니다. 아카이브는 일관된 읽기를 달성하기 위해 쿼리가 시작되기 전에 테이블에 존재하는 모든 행이 반환될 때까지 다른 SELECT가 실행되지 않도록 합니다. 또한 읽기 작업이 완료될 때까지 보이지 않는 일괄 삽입도 구현됩니다. 이 메커니즘은 트랜잭션 및 MVCC의 일부 기능을 모방하지만 아카이브 엔진은 트랜잭션 엔진이 아니라 고속 삽입 및 압축에 최적화된 엔진입니다.
CSV 스토리지 엔진
이 엔진은 일반 CSV 파일을 MySQL 테이블로 처리할 수 있지만, 이 테이블은 인덱스를 지원하지 않습니다. CSV 파일을 CSV 스토리지 엔진의 데이터 디렉터리에 복사하기만 하면 되며, MySQL에 나열된 규칙을 사용하여 열고 사용할 수 있습니다.
메모리 엔진
데이터에 빠르게 액세스해야 하고, 다시 시작한 후에도 데이터가 수정되거나 손실되지 않는 경우 메모리 테이블을 사용하는 것이 매우 유용합니다. 메모리 테이블은 모든 데이터가 메모리에 저장되고 디스크 I/O 작업이 필요하지 않기 때문에 MyISAM 테이블보다 훨씬 빠릅니다. 다시 시작한 후에도 메모리 테이블의 구조는 유지되지만 데이터는 손실됩니다.
은 Hash index를 지원하여 검색 속도가 매우 빠릅니다.
은 테이블 수준 잠금이므로 동시 쓰기 성능이 낮습니다.
은 BLOB 또는 TEXT 유형의 컬럼을 지원하지 않으며, 각 행의 길이는 고정되어 있습니다. varchar를 지정하더라도 실제 저장소에서는 char로 변환됩니다.
참고
InnoDB에 없는 일부 기능을 사용해야 하거나 이를 대체할 수 있는 다른 방법이 없는 경우를 제외하고는 InnoDB 엔진 —— "고성능 MySQL"
또한 위의 내용에는 일반적으로 사용되는 일부 스토리지 엔진만 나열되어 있으며 이는 포괄적이지 않습니다.
테이블을 생성할 때 테이블의 스토리지 엔진인 테이블 유형을 지정할 수 있습니다. 테이블의 스토리지 엔진은 데이터가 저장되고 액세스되는 방식과 트랜잭션이 저장되는 방식을 결정합니다. 테이블의 스토리지 엔진은 SQL 문을 처리하는 데 필요한 스토리지 공간과 속도에 큰 영향을 미칩니다. 다양한 스토리지 엔진은 서로 다른 특성을 가지고 있습니다. 일부 스토리지 엔진은 많은 복잡한 SELECT 문을 처리하는 데 매우 적합한 반면, 다른 스토리지 엔진은 빠른 업데이트를 달성하는 데 더 적합합니다.
InnoDB
InnoDB는 MySQL의 기본 트랜잭션 엔진이자 가장 중요하고 널리 사용되는 스토리지 엔진입니다. 다수의 단기 트랜잭션을 처리하도록 설계되었습니다. 단기 트랜잭션은 대부분의 경우 정상적으로 제출되며 거의 롤백되지 않습니다. InnoDB의 성능과 자동 충돌 복구 기능은 비트랜잭션 스토리지 요구 사항에 널리 사용됩니다.
다른 스토리지 엔진을 사용해야 하는 아주 특별한 이유가 없는 한 InnoDB 엔진을 우선적으로 사용해야 합니다. ————"고성능 MySQL"
InnoDB는 MVCC를 사용하여 높은 동시성을 지원하고 4가지 표준 격리 수준을 구현합니다. 기본 수준은 REPEATABLE READ이며 간격 잠금 전략은 팬텀 읽기를 방지합니다.
InnoDB는 클러스터형 인덱스 기반의
이 외래 키 제약 조건을 지원함을 나타냅니다.
열 AUTO_INCREMENT 속성의 자동 추가를 지원합니다.
업무. InnoDB 스토리지 엔진은 트랜잭션을 지원하는 표준 MySQL 스토리지 엔진입니다.
인덱스를 삭제하거나 추가할 때 테이블 데이터 전체를 복사할 필요가 없습니다.
InnoDB는 디스크에서 데이터를 읽을 때 예측 가능한 미리 읽기, 메모리에 해시 인덱스를 자동으로 생성하여 작업 속도를 높이는 등 다양한 내부 최적화를 수행했습니다. 삽입 작업 속도를 높이는 삽입 버퍼입니다.
InnoDB 테이블은 클러스터형 인덱스를 기반으로 구축됩니다. InnoDB의 인덱스 구조는 다른 MySQL 엔진과 매우 다릅니다. 클러스터형 인덱스는 기본 키 쿼리에 대한 성능이 높습니다. 그러나 보조 인덱스에는 기본 키 열이 포함되어야 하므로 기본 키 열이 크면 다른 모든 인덱스도 커집니다. 따라서 테이블에 인덱스가 많으면 기본 키는 최대한 작아야 합니다.
MyISAM
MyISAM은 전체 텍스트 인덱싱, 압축, 공간 함수(GIS) 등을 포함한 많은 기능을 제공하지만 MyISAM은 트랜잭션 및 행 수준 잠금을 지원하지 않습니다. 그리고 충돌 후에는 안전하게 복원할 수 없다는 것이 단점입니다. MySQL 5.1 및 이전 버전에서는 MyISAM이 기본 스토리지 엔진입니다. MySQL이 오랫동안 트랜잭션을 지원했음에도 불구하고 MySQL은 여전히 많은 사람들이 생각하는 비트랜잭션 데이터베이스입니다.
MyISAM은 행이 아닌 전체 테이블을 잠급니다.
전체 텍스트 색인 생성을 지원합니다.
압축 테이블을 지원합니다. 압축된 테이블은 수정할 수 없으며 디스크 공간 사용량을 크게 줄여 디스크 I/O 작업을 줄이고 쿼리 성능을 향상시킬 수 있습니다.
저장소
MyISAM은 테이블을 두 개의 파일, 즉 데이터 파일과 인덱스 파일에 각각 .MYD 및 .MYI 확장자로 저장합니다. MyISAM 테이블에는 동적 또는 정적 행이 포함될 수 있습니다. MySQL은 테이블 정의에 따라 사용할 행 형식을 결정합니다.
MyISAM 테이블에 가변 길이 행이 있는 경우 기본 구성에서는 256TB의 데이터만 처리할 수 있습니다.
특징
MySQL의 최초 스토리지 엔진 중 하나로, 아직 몇 가지 기능이 있습니다.
잠금 및 동시성 – 테이블 잠금
MyISAM은 행이 아닌 전체 테이블을 잠급니다. 읽기 시에는 읽어야 하는 모든 테이블에 공유 잠금이 추가되고, 쓰기 시에는 테이블에 배타적 잠금이 추가됩니다. 그러나 테이블에 읽기 쿼리가 있는 동안 새 레코드를 테이블에 삽입할 수도 있습니다(동시 삽입).
복구
MyISAM 테이블의 경우 MySQL은 검사 및 유지 관리 작업을 수동 또는 자동으로 수행할 수 있지만 여기서 언급하는 복구는 트랜잭션 복구 및 충돌 복구와는 다른 개념입니다.
인덱스 기능
MyISAM 테이블의 경우 BLOB 및 TEXT와 같은 긴 필드도 처음 500자를 기반으로 인덱스를 생성할 수 있습니다. MyISAM은 또한 단어 분할을 기반으로 생성된 인덱스인 전체 텍스트 인덱싱을 지원하며 복잡한 쿼리를 지원할 수 있습니다.
인덱스 키 업데이트 지연
MyISAM 테이블을 생성할 때 DELAY_KEY_WRITE 옵션을 지정하면 수정된 인덱스 데이터가 각 수정이 완료될 때 즉시 디스크에 기록되지 않습니다.
MyISAM 성능
MyISAM 엔진은 단순하게 설계되었으며 데이터가 컴팩트한 형식으로 저장되므로 특정 시나리오에서의 성능이 매우 좋습니다. 그러나 테이블 잠금의 존재는 성능에 큰 영향을 미칩니다.
아카이브 엔진
아카이브 스토리지 엔진은 INSERT 및 SELECT만 지원합니다. 아카이브 엔진은 모든 쓰기를 캐시하고 zlib를 사용하여 삽입을 압축하므로 MyISAM 테이블보다 디스크 I/O가 덜 필요합니다. 그러나 모든 SELECT 쿼리는 전체 테이블 스캔을 수행해야 합니다. 따라서 아카이브 테이블은 데이터 분석을 위해 전체 테이블 스캔이 필요한 로깅 및 데이터 수집 애플리케이션에 적합합니다.
아카이브 엔진은 행 수준 잠금 및 전용 버퍼를 지원하므로 높은 동시 삽입이 가능합니다. 아카이브는 일관된 읽기를 달성하기 위해 쿼리가 시작되기 전에 테이블에 존재하는 모든 행이 반환될 때까지 다른 SELECT가 실행되지 않도록 합니다. 또한 읽기 작업이 완료될 때까지 보이지 않는 일괄 삽입도 구현됩니다. 이 메커니즘은 트랜잭션 및 MVCC의 일부 기능을 모방하지만 아카이브 엔진은 트랜잭션 엔진이 아니라 고속 삽입 및 압축에 최적화된 엔진입니다.
CSV 스토리지 엔진
이 엔진은 일반 CSV 파일을 MySQL 테이블로 처리할 수 있지만, 이 테이블은 인덱스를 지원하지 않습니다. CSV 파일을 CSV 스토리지 엔진의 데이터 디렉터리에 복사하기만 하면 되며, MySQL에 나열된 규칙을 사용하여 열고 사용할 수 있습니다.
메모리 엔진
데이터에 빠르게 액세스해야 하고, 다시 시작한 후에도 데이터가 수정되거나 손실되지 않는 경우 메모리 테이블을 사용하는 것이 매우 유용합니다. 메모리 테이블은 모든 데이터가 메모리에 저장되고 디스크 I/O 작업이 필요하지 않기 때문에 MyISAM 테이블보다 훨씬 빠릅니다. 다시 시작한 후에도 메모리 테이블의 구조는 유지되지만 데이터는 손실됩니다.
은 Hash index를 지원하여 검색 속도가 매우 빠릅니다.
은 테이블 수준 잠금이므로 동시 쓰기 성능이 낮습니다.
은 BLOB 또는 TEXT 유형의 컬럼을 지원하지 않으며, 각 행의 길이는 고정되어 있습니다. varchar를 지정하더라도 실제 저장소에서는 char로 변환됩니다.
참고
InnoDB에 없는 일부 기능을 사용해야 하거나 이를 대체할 수 있는 다른 방법이 없는 경우를 제외하고는 InnoDB 엔진 —— "고성능 MySQL"
또한 위의 내용에는 일반적으로 사용되는 일부 스토리지 엔진만 나열되어 있으며 이는 포괄적이지 않습니다.
위 내용은 [MySQL] MySQL 스토리지 엔진의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

데이터베이스 최적화에서 쿼리 요구 사항에 따라 인덱싱 전략을 선택해야합니다. 1. 쿼리에 여러 열이 포함되고 조건 순서가 수정되면 복합 인덱스를 사용하십시오. 2. 쿼리에 여러 열이 포함되어 있지만 조건 순서가 고정되지 않은 경우 여러 단일 열 인덱스를 사용하십시오. 복합 인덱스는 다중 열 쿼리를 최적화하는 데 적합한 반면 단일 열 인덱스는 단일 열 쿼리에 적합합니다.

MySQL 느린 쿼리를 최적화하려면 SlowQueryLog 및 Performance_Schema를 사용해야합니다. 1. SlowQueryLog 및 Set Stresholds를 사용하여 느린 쿼리를 기록합니다. 2. Performance_schema를 사용하여 쿼리 실행 세부 정보를 분석하고 성능 병목 현상을 찾고 최적화하십시오.

MySQL 및 SQL은 개발자에게 필수적인 기술입니다. 1.MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템이며 SQL은 데이터베이스를 관리하고 작동하는 데 사용되는 표준 언어입니다. 2.MYSQL은 효율적인 데이터 저장 및 검색 기능을 통해 여러 스토리지 엔진을 지원하며 SQL은 간단한 문을 통해 복잡한 데이터 작업을 완료합니다. 3. 사용의 예에는 기본 쿼리 및 조건 별 필터링 및 정렬과 같은 고급 쿼리가 포함됩니다. 4. 일반적인 오류에는 구문 오류 및 성능 문제가 포함되며 SQL 문을 확인하고 설명 명령을 사용하여 최적화 할 수 있습니다. 5. 성능 최적화 기술에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 코드 가독성 향상이 포함됩니다.

MySQL 비동기 마스터 슬레이브 복제는 Binlog를 통한 데이터 동기화를 가능하게하여 읽기 성능 및 고 가용성을 향상시킵니다. 1) 마스터 서버 레코드는 Binlog로 변경됩니다. 2) 슬레이브 서버는 I/O 스레드를 통해 Binlog를 읽습니다. 3) 서버 SQL 스레드는 데이터를 동기화하기 위해 Binlog를 적용합니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

MySQL의 설치 및 기본 작업에는 다음이 포함됩니다. 1. MySQL 다운로드 및 설치, 루트 사용자 비밀번호를 설정하십시오. 2. SQL 명령을 사용하여 CreateAbase 및 CreateTable과 같은 데이터베이스 및 테이블을 만듭니다. 3. CRUD 작업을 실행하고 삽입, 선택, 업데이트, 명령을 삭제합니다. 4. 성능을 최적화하고 복잡한 논리를 구현하기 위해 인덱스 및 저장 절차를 생성합니다. 이 단계를 사용하면 MySQL 데이터베이스를 처음부터 구축하고 관리 할 수 있습니다.

innodbbufferpool은 데이터와 색인 페이지를 메모리에로드하여 MySQL 데이터베이스의 성능을 향상시킵니다. 1) 데이터 페이지가 버퍼 풀에로드되어 디스크 I/O를 줄입니다. 2) 더러운 페이지는 정기적으로 디스크로 표시되고 새로 고침됩니다. 3) LRU 알고리즘 관리 데이터 페이지 제거. 4) 읽기 메커니즘은 가능한 데이터 페이지를 미리로드합니다.

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

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

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