MySQL의 스토리지 엔진의 MyISAM, InnoDB의

  A, MySQL의의 MyISAM과 방법을 선택하는 InnoDB 스토리지 엔진

  MySQL은 각 스토리지 엔진은 자신의 장점과 단점이 있습니다, 여러 스토리지 엔진을 가지고, 당신은 최고의 사용을 선택할 수의 MyISAM, InnoDB하지만, 병합, MEMORY (HEAP), BDB (버클리), 예, FEDERATED, ARCHIVE, CSV, BLACKHOLE.

  MySQL의 스토리지 엔진의 MyISAM과 InnoDB의 동안하는 것은 두하지만이 일반적이다.

  두 스토리지 엔진의 기능 사이의 대략 차이 :

  1) 이노 지원 거래의 MyISAM은 지원하지 않으며, 이것은 매우 중요합니다. 트랜잭션은 복원 롤백 할 수있는 실수만큼 같은 추가 및 삭제의 시리즈로 고급 치료 방법이며,의 MyISAM하지 그것.

  2) 질의 기반 애플리케이션의 MyISAM뿐만 아니라 인서트 자주 변경 디비, 높은 보안 애플리케이션을 포함한다.

  3) 이노 지원 외래 키,의 MyISAM은 지원하지 않습니다.

  4) MySQL5.5.5에서, InnoDB는 기본 엔진입니다.

  5) InnoDB의 FULLTEXT 인덱스 유형은 지원되지 않습니다. 하지만 당신은 스핑크스 플러그인이 전체 텍스트 인덱싱을 지원 이노을 사용할 수 있습니다.

  테이블의 행 6) 수는 같은 테이블에서, InnoDB하지만 행 수를 계산하기 위해 다시 전체 테이블을 스캔해야 SELECT COUNT (*)로, InnoDB의 저장되지 않습니다,하지만의 MyISAM은 단순히 저장하는 행의 좋은 숫자를 읽습니다. 개수 (*) 문의 MyISAM도 전체 테이블을 스캔해야하는 조건이 포함 된 경우, 그합니다.

  7) 자기 성장 분야의 경우, InnoDB는 현장의 인덱스를 포함해야하지만 MyISAM 테이블에 인덱스 및 기타 분야 함께 공동을 설정할 수 있습니다.

  8) 전체 테이블을 비우고, InnoDB하지만 라인으로 라인을 삭제하는 것입니다, 효율이 매우 느립니다. 의 MyISAM 테이블을 다시 작성합니다.

  전체 테이블이 업데이트 테이블로 잠겨 일부 경우에 9) 이노 행 잠금 지원 (세트 = 1 여기서, '% 리 %'등 사용자.

  둘째,의 MyISAM과 InnoDB의에 사용하도록 선택 :

  MYISAM과 INNODB 제공이 MySQL의 데이터베이스 스토리지 엔진이다. 모두 장단점이 다른 것으로 설명 될 수있다. INNODB는 트랜잭션 기능과 행 수준 잠금과 같은 관계형 데이터베이스의 고급 기능 중 일부를 지원, MYISAM는 지원되지 않습니다. MYISAM 더 나은 성능, 더 적은 저장 공간. 따라서, 특정 응용 프로그램에 따라 스토리지 엔진의 종류를 선택합니다

  응용 프로그램이 트랜잭션을 사용해야하는 경우 1), 당신은 INNODB 엔진을 선택해야 의심의 여지가있다. 그러나 행 수준 잠금의 INNODB는 조건으로, 관심을 지불합니다. 기본 키가없는 조건, 잠금 여전히 전체 테이블이 될 것입니다 때. 예를 들어, MYTABLE 같은 DELETE 문에서 삭제.

  응용 프로그램이 높은 쿼리 성능을 필요로하는 경우 2), MYISAM을 사용하는 것이 필요하다. MYISAM 인덱스 데이터는 분리되고, 압축되어 인덱스 메모리를 더 잘 활용할 수있다. INNODB 이상 그래서는 쿼리 성능이 크게 개선. 압축 후 지수는 일부 디스크 공간을 절약 할 수 있습니다. MYISAM 크게 쿼리 LIKE 효율성을 최적화 할 수 있습니다 전체 텍스트 인덱싱을 보유하고 있습니다.

  일부는 작은 응용 프로그램을 사용할 수 MYISAM, 그것은 단지 편견 말한다.

  만약 같은 하위 서브 테이블 데이터베이스로, 인프라를 업그레이드하기보다는 단순히 스토리지 엔진에 의존하여 해결하는 데 필요한 많은 양의 데이터.

  이제 우리는 일반적으로 선택되는 InnoDB는, 주로의 MyISAM 전체 테이블 잠금, 읽기 및 읽기 잠금 테이블, 비효율적 인의 MyISAM의 효율성에 의해 복잡 일련 문제를 작성하고 많이 쓰는 응용 프로그램은 일반적으로 선택하지 않습니다. Qiuqiu 학습 큰 데이터 쿤 * 부착 + 606 * [859 다음에 705을 부착

  셋째, MySQL 데이터베이스의 기본 스토리지 엔진에 :

  MySQL의의 MyISAM과 InnoDB는 두 스토리지 엔진이다.

  이 기본적으로 설치되어있는 경우, 기본 스토리지 엔진 = INNODB의 my.cnf 파일을 찾을 수 있습니다, 이노해야한다;

  물론, 당신은 테이블의 건설시에 스토리지 엔진을 지정할 수 있습니다.

  해당 정보는 테이블 XX를 만들 쇼를 통해 볼 수 있습니다.

  넷째, 비교 MySQL의 이노와의 MyISAM에서

  1)의 MyISAM :

  디스크에있는 세 개의 파일에 각각의 MyISAM 스토리지. 확장을 시작하는 테이블의 첫 번째 파일 이름의 이름은 파일 유형을 나타냅니다.

  FRM은 파일 저장 테이블;

  데이터 MYD 파일 저장 테이블 (MYDATA);

  인덱스 MYI (MYIndex) 파일 스토리지 테이블.

  MyISAM 테이블을 압축 할 수 있으며, 전체 텍스트 검색을 지원합니다. 그것은 트랜잭션을 지원하지 않지만, 외래 키를 지원하지 않습니다. 일 롤백은 불완전한 롤백에, 원자없는 결과 않습니다. 비교적 작은 동시을 행하는 테이블 updata 잠금. 당신은 선택을 많이 할 경우의 MyISAM 더 나은 선택이 될 것입니다.

  의 MyISAM 인덱스 데이터가 분리되고, 인덱스가 압축 메모리 사용량을 많이 향상에 대응한다. 더 많은 부피의 MyISAM보다 작은 것은 아니다 디비 될 것이다 압축을 사용하지 않는 인덱스로드 디비 인덱스 데이터가 밀접하게 연관되어있다있다.

  의 MyISAM 인덱스는 메모리가 아닌 데이터 캐시됩니다. InnoDB의 데이터는 상대적으로 서버의 메모리 더 큰, 더 큰 InnoDB의 플레이 장점을 말하기, 메모리에 캐시됩니다.

  장점 : 선택, 전체 텍스트 인덱싱 많은 수의 상대적으로 빠른 쿼리 데이터.

  단점 : 트랜잭션이 외래 키를 지원하지 않습니다 지원하지 않습니다, 동시성의 소량 대량 업데이트에 대한 적합하지 않습니다

  2) 이노 :

  거래의이 유형은 안전합니다. 그것은 BDB, 그들은 또한 외래 키를 지원하는 특성의 동일한 유형이 있습니다. InnoDB의 테이블 빨리. BDB는 기능 이상도 풍부있다, 그래서 당신은 거래 안전 스토리지 엔진을 필요로하는 경우, 그것을 사용하는 것이 좋습니다. 갱신하는 동안 테이블 행 잠금, 동시성 상대적으로 많은 양의. 당신이 데이터 INSERT 또는 UPDATE의 큰 숫자를 수행하는 경우 성능상의 이유로, 당신은 InnoDB 테이블을 사용해야합니다.

  장점 : 지원 서비스, 외래 키 지원, 동시성, 큰 대량 업데이트에 적합합니다.

  단점 : 선택의 많은 수에 적합하지 상대적으로 빠른 쿼리 데이터.

  사물의 InnoDB의 테이블 유형에 대한 지원, 주된 이유 중 속도가 AUTOCOMMIT이 켜져 기본 설정에 영향을 주며 프로그램이 명시 적으로 트랜잭션을 시작 BEGIN 호출하지 않습니다, 각 리드가 자동으로 심각하게 속도에 영향을 미치는, 커밋 삽입합니다. 당신은 크게 성능이 향상됩니다 (자동 커밋도 열 수있는 경우에도) 여러 가지를 형성 SQL, SQL을 실행하기 전에 시작 호출 할 수 있습니다.

  기본적인 차이는 :

  의 MyISAM는 반면, 이노 유형 지원을 고급 처리 트랜잭션 처리의 유형을 지원하지 않습니다.

  MyISAM 테이블 타입은 이노 형보다 몇 배 빠른 수행하는 성능을 강조하기 위해,하지만 트랜잭션 지원을 제공하지 않으며, InnoDB는 트랜잭션 지원 고급 데이터베이스 기능은 외부 키가 제공합니다.


HTTPS : //juejin.im/post/5d09d5b96fb9a07f091ba717 재현

추천

출처blog.csdn.net/weixin_33893473/article/details/93174471