|
InnoDB |
|||||||||||||||||||||||||
헌법의 차이 |
각 MyISAM은 디스크에 3개의 파일을 저장합니다. 첫 번째 파일 이름은 테이블 이름으로 시작하고 확장자는 파일 유형을 나타냅니다. .frm 파일 저장 테이블 정의데이터 파일 확장자는 .MYD(MYData)입니다 Index 파일 확장자는 .MYI(MYIndex)입니다. | 디스크 기반 리소스는 InnoDB 테이블스페이스 데이터 파일과 해당 로그 파일, InnoDB 테이블 크기는 운영 체제 파일의 크기에 의해서만 제한되며 일반적으로 2GB | ||||||||||||||||||||||||
트랜잭션 처리 td>MyISAM 유형 테이블은 성능을 강조하며 실행 속도는 InnoDB 유형보다 빠르지만 트랜잭션 지원을 제공하지 않습니다 | InnoDB는 트랜잭션을 제공하고 트랜잭션, 외래 키 및 기타 고급 데이터베이스 기능을 지원합니다 | |||||||||||||||||||||||||
추가, 삭제, 수정 및 쿼리 작업 | 선택 항목이 많은 경우 MyISAM이 더 나은 선택입니다 | 1, 데이터에 많은 삽입과 업데이트가 필요한 경우 성능상의 이유로 InnoDB 테이블을 사용해야 합니다2. 테이블에서 삭제할 때 InnoDB는 테이블을 다시 생성하지 않습니다. 그러나 행별로 삭제합니다. 3. 마스터 작업에서 테이블 로드는 InnoDB에서 작동하지 않습니다. 해결 방법은 먼저 InnoDB 테이블을 MyISAM 테이블로 변경한 다음 가져온 후 InnoDB 테이블로 변경하는 것입니다. 그러나 InnoDB 기능에서는 작동하지 않습니다(예를 들어 외래 키가 있는 테이블은 적용할 수 없습니다 | ||||||||||||||||||||||||
기본 키 자동 증가 | 테이블당 auto_increment 열의 내부 처리MyISAM은 삽입 및 업데이트 작업을 위해 이 열을 자동으로 업데이트합니다. 기본 키 열을 더 빠르게 만듭니다(최소 10%) auto_increment는 alter 및 myisamchk를 통해 재설정할 수 있습니다. auto_increment 유형 필드의 경우 InnoDB는 이 필드에 대해서만 인덱스를 포함해야 하지만 myisam 테이블에서는 다른 필드와 함께 사전 합계 인덱스를 설정할 수 있습니다. 더 좋고 빠른 auto_increment 처리 | 테이블에 auto_increment 열을 지정하면 데이터 사전의 InnoDB 테이블 핸들에는 열에 새 값을 할당하는 데 사용되는 증분 카운터라는 카운터가 포함됩니다. 자동 증가 카운터는 디스크가 아닌 메인 메모리에만 저장됩니다. | ||||||||||||||||||||||||
테이블의 특정 행 수 | select count(*) from table MyISAM은 단순히 저장된 행 수를 읽습니다. 참고, count(*) 문에 where 조건이 포함되어 있으면 두 테이블의 작업은 동일합니다. | InnoDB는 특정 개수의 행을 테이블에 저장하지 않습니다. 즉, table에서 select count(*)를 실행할 때 테이블 전체를 스캔하여 행 수를 계산해야 합니다 | ||||||||||||||||||||||||
잠금 | 테이블 잠금 | 행 잠금을 제공하고 Oracle 유형 읽기와 일치하는 잠금은 또한 InnoDB 테이블의 행 잠금이 절대적이지 않습니다. SQL 문을 실행할 때 Mysql이 스캔 범위를 결정할 수 없으면 InnoDB는 전체 테이블을 잠급니다 | ||||||||||||||||||||||||
B+트리 | b- 트리 또는 b트리 td> |