source

MyISAM과 InnoDB의 차이점은 무엇입니까?

goodcode 2022. 11. 5. 11:39
반응형

MyISAM과 InnoDB의 차이점은 무엇입니까?

이전에도 이 질문을 한 적이 있는 것으로 알고 있습니다만, 대부분의 경우 특정 데이터베이스나 테이블에 대해 질문하고 있습니다.이 사이트에서는 특정 데이터베이스를 참조하지 않고는 두 엔진과 그 차이를 설명하는 답을 찾을 수 없습니다.

향후 테이블 또는 데이터베이스 설계에 대해 보다 충분한 정보를 바탕으로 의사결정을 내릴 수 있도록 하고 싶기 때문에 두 스토리지 엔진의 차이에 대한 포괄적인 답변을 찾고 있습니다.

MyISAMInnoDB의 차이점은 무엇이며, 어느 쪽을 선택할 때 무엇을 찾아야 합니까?

InnoDB와 MyISAM의 주요 차이점은 "참조 무결성"과 "트랜잭션"에 대한 지원입니다.

외부 키 제약을 적용하거나 트랜잭션을 지원하기 위해 데이터베이스가 필요한 경우 InnoDB를 선택합니다(즉, 변경 사항을 모두 적용하거나 모든 변경 사항을 되돌린 상태에서 두 개 이상의 DML 작업이 단일 작업 단위로 처리됨).이러한 기능은 MyISAM 엔진에서는 지원되지 않습니다.

그것들은 가장 큰 두 가지 차이점입니다.또 다른 큰 차이는 동시성이다.MyISAM을 사용하면 DML 문이 테이블에서 배타적 잠금을 얻습니다.이 잠금이 유지되고 있는 동안에는 다른 세션은 테이블에서 SELECT 또는 DML 작업을 수행할 수 없습니다.

문의하신 2개의 엔진(InnoDB와 MyISAM)은 설계 목표가 다릅니다.MySQL에는 자체 설계 목표를 가진 다른 스토리지 엔진도 있습니다.

InnoDB와 MyISAM 중 하나를 선택할 때 첫 번째 단계는 InnoDB가 제공하는 기능이 필요한지 여부를 결정하는 것입니다.그렇지 않은 경우 MyISAM을 검토해야 합니다.

(이 포럼에서는) 차이에 대한 보다 상세한 논의는 문제 영역에 대한 보다 상세한 논의 없이 다소 비현실적입니다.응용 프로그램의 데이터베이스 사용 방법, 테이블 수, 테이블 크기, 트랜잭션 부하, 선택, 삽입, 업데이트, 동시성 요건, 복제 기능 등


데이터베이스의 논리적 설계는 데이터 분석과 사용자 요건을 중심으로 이루어져야 합니다. 릴레이셔널 데이터베이스를 사용할지 여부는 나중에 결정되며, 릴레이셔널 데이터베이스 관리 시스템으로 MySQL을 선택한 후 테이블별로 스토리지 엔진을 선택할 수 있습니다.

마이삼:

  1. MYISAM은 테이블 레벨 잠금을 지원합니다.
  2. MyISAM은 속도 요구에 맞게 설계되어 있습니다.
  3. MyISAM은 외부 키를 지원하지 않기 때문에 MyISAM은 DBMS로 MySQL을 호출합니다.
  4. MyISAM은 테이블, 데이터 및 인덱스를 별도의 3개의 파일을 사용하여 디스크 공간에 저장합니다.(탭명).FRM, tablename.MYD, tablename.MYI)
  5. MYISAM은 트랜잭션을 지원하지 않습니다.MYISAM 에서는 커밋 및 롤백은 할 수 없습니다.명령어를 발행하면 끝입니다.
  6. MYISAM은 전체 텍스트 검색을 지원합니다.
  7. MyISAM은 테이블이 더 정적이고 선택 항목이 많고 업데이트 및 삭제 횟수가 적은 경우 사용할 수 있습니다.

이노디비:

  1. InnoDB는 행 레벨 잠금을 지원합니다.
  2. 대량의 데이터를 처리할 때 최고의 성능을 발휘하도록 설계된 InnoDB
  3. InnoDB는 외부 키를 지원하므로 InnoDB가 포함된 MySQL은 RDB입니다.
  4. InnoDB는 테이블스페이스에 테이블과 인덱스를 저장합니다.
  5. InnoDB는 트랜잭션을 지원합니다.InnoDB를 사용하여 커밋 및 롤백 가능

언급URL : https://stackoverflow.com/questions/12614541/whats-the-difference-between-myisam-and-innodb

반응형