>백엔드 개발 >PHP 튜토리얼 >mySQL의 MyISAM과 InnoDB의 차이점은 무엇입니까? MYSQL 데이터베이스를 최적화하는 방법은 무엇입니까?

mySQL의 MyISAM과 InnoDB의 차이점은 무엇입니까? MYSQL 데이터베이스를 최적화하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-08-08 09:20:431106검색

MyISAM과 InnoDB의 기본 차이점

1. InnoDB는 FULLTEXT 유형 인덱스를 지원하지 않습니다.

2. InnoDB는 테이블에 특정 개수의 행을 저장하지 않습니다. 즉, 테이블에서 select count(*)를 실행할 때 InnoDB는 테이블 전체를 스캔해야 합니다. 그러나 MyISAM은 단순히 저장된 행 수를 읽습니다. count(*) 문에 where 조건이 포함된 경우 두 테이블의 작업은 동일합니다.

3. AUTO_INCREMENT 유형의 필드의 경우 InnoDB는 이 필드만 포함하는 인덱스를 포함해야 하지만 MyISAM 테이블에서는 다른 필드와 공동 인덱스를 설정할 수 있습니다.

4. DELETE FROM 테이블을 실행하면 InnoDB는 테이블을 다시 생성하지 않고 행 단위로 삭제합니다. MyISAM은 테이블이고 innodb는 행 잠금입니다.

5. LOAD TABLE FROM MASTER(기본 로드 테이블에서) 작업이 InnoDB에서 작동하지 않습니다. 해결 방법은 먼저 InnoDB를 변경하는 것입니다. MyISAM 테이블로의 테이블은 데이터를 가져온 후 InnoDB 테이블로 변경할 수 있지만 이는 추가 InnoDB 기능(예: 외래 키)을 사용하는 테이블에는 적용되지 않습니다.

또한 InnoDB 테이블의 행 잠금은 절대적이지 않습니다. MySQL이 SQL 문을 실행할 때 스캔할 범위를 결정할 수 없는 경우 InnoDB 테이블도 전체 테이블을 잠급니다. , 예를 들어 업데이트 테이블 세트 num=1 여기서 이름은 ""2%"

6.InnoDB는 다음을 지원합니다

스토리지 엔진 선택 실제 상황에 따라.

일반적으로 쿼리에는 myIsam을 사용하는 것이 좋습니다.

트랜잭션 처리나 외래 키가 필요한 경우 그러면 InnoDB가 더 나을 수 있습니다.

MYSQL 데이터베이스를 최적화하는 방법:

1. 정의된 필드를 최대한 많이 사용하고 '지방, 성별'과 같은 필드 설정 NOT NULL은 ENUM으로 설정하는 것이 가장 좋습니다

2, 하위 쿼리 대신 조인을 사용하세요

3, 수동으로 생성한 임시 테이블을 유니온(UNION)을 사용하여 교체

4. 트랜잭션 처리(추가 및 수정 등 데이터 무결성 보장) 동시에 둘 다 true이면 둘 다 실행되고 하나는 모두 실패합니다.

5. 인덱스를 적절하게 생성합니다(인덱스를 생성하는 방법은 무엇입니까?) 인덱싱의 장점과 단점?)

6. sql 문 최적화

7, mysql 실행 계획을 볼 수 있는 설명

8, 하위 테이블(세로 하위 테이블, 가로 하위 테이블?)

관련 읽기

http://www.phpernote.com/mysql/500.html

http://www.nowamagic.net/librarys/veda/detail/1899

위는 MyISAM과 mysql의 InnoDB의 차이점을 소개합니다. MYSQL 데이터베이스를 최적화하는 방법은 무엇입니까? , 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.