MySql 저장 엔진 과 색인 에 관 한 지식 총화

메모리 엔진
무엇이 데이터베이스 저장 엔진 입 니까?
데이터베이스 엔진 은 데이터베이스 베이스 소프트웨어 구성 요소 로 서로 다른 저장 엔진 은 서로 다른 저장 체제,색인 기법,잠 금 수준 등 기능 을 제공 하고 서로 다른 데이터 베이스 엔진 을 사용 하면 특정한 기능 을 얻 을 수 있다.
어떻게 엔진 을 봅 니까?

--            
show engines;
​
--         :
show create table   \G
​
--           :
show table status\G
테이블 작성 시 엔진 지정

create table yingqin (id int,name varchar(20)) engine='InnoDB';
수정 표 엔진

alter table    engine='    ';
기본 엔진 수정
  • vi /etc/my.cnf   (설정 파일 주 소 는 설치 상황 에 따라)
  • 아래
  • default-storage-engine=MyIsAM
  • 저장 후 서 비 스 를 다시 시작 하 는 것 을 기억 하 세 요.
    MyISAM 과 InnoDB 의 차이
    MyISAM:전체 텍스트 인덱스(full text)지원;트 랜 잭 션 지원 하지 않 음;시계 자물쇠;표 의 구체 적 인 줄 수 저장 하기;뿔뿔이 흩 어 져 회복 이 좋 지 않다.
    Innodb:사무 지원;이전 버 전 은 전체 텍스트 색인 을 지원 하지 않 았 으 나 5.6 이후 버 전 은 이 기능 을 지원 하기 시작 했다.줄 잠 금(절대 가 아 닙 니 다.sql 문 구 를 실행 할 때 범 위 를 정할 수 없 을 때 도 전체 표를 잠 금 합 니 다.예 를 들 어 update table set id=3 where name like'a%';);표 의 구체 적 인 줄 수 를 저장 하지 않 기;무 너 져 서 회복 하 다.
    언제 어떤 엔진 을 선택 하 는 것 이 좋 습 니까?
    MyISAM:
    사 무 를 필요 로 하지 않 을 때카운트 계산 을 많이 해 요.
    InnoDB:
    신뢰성 요구 가 높 거나 지원 을 요구 하 는 사무
  • 외부 키 로 제약 을 받 으 려 고 할 때(MyISAM 이 만 든 외부 키 는 유효 하지 않 음)
  • 추천 용 InnoDB
    인덱스
    색인 이란 무엇 입 니까?
    색인 은 디스크 에 저 장 된 데이터베이스 구조 로 데이터 시트 에 있 는 모든 기록 에 대한 참조 지침 을 포함 하고 있 습 니 다.색인 을 사용 하면 특정한 열 이나 여러 열 에 특정한 값 이 있 는 줄 을 빠르게 찾 을 수 있 습 니 다.
    색인 의 장점:
    4.567917.유일한 색인 을 만들어 데이터베이스 시트 의 모든 줄 데이터 의 유일 성 을 확보 합 니 다4.567917.데이터 의 검색 속 도 를 가속 화 할 수 있다4.567917.표 데이터 의 완전 성과 정확성 을 확보 할 수 있다.
    색인 의 단점:
    4.567917.색인 은 물리 적 공간 을 차지 해 야 합 니 다4.567917.표 의 데 이 터 를 변경 할 때 색인 도 동적 유지 에 따라 데이터 의 유지 속 도 를 낮 춰 야 한다색인 의 일반적인 형식:
    index:일반 색인
  • unique:유일한 색인
  • primary key:메 인 키 인덱스
  • foreign key:외부 키 인덱스
    전체 텍스트:전체 텍스트 인덱스조합 색인 
    일반 인덱스 와 유일한 인덱스
    일반 색인 이란 무엇 입 니까?
    일반 색인(index)은 말 그대로 각종 색인 중에서 가장 일반적인 색인 이 고 주요 임 무 는 조회 속 도 를 높이 는 것 이다.같은 색인 내용 을 허용 하고 빈 값 을 허용 하 는 것 이 특징 입 니 다.
    유일한 색인 은 무엇 입 니까?
    유일한 색인:(unique)말 그대로 같은 색인 내용 이 나 올 수 없 지만 비어 있 을 수 있 습 니 다(null)값
    어떻게 일반 색인 이나 유일한 색인 을 만 듭 니까?
    
    --        
    create table test (
      id int(7) zerofill auto_increment not null,
      username varchar(20),
      servnumber varchar(30),
      password varchar(20),
      createtime datetime,
      unique (id)
    )DEFAULT CHARSET=utf8;
    
    --        
    --  :alter table    add index      (    );
    --  :           ,             
    alter table test add unique unique_username (username);
    ​
    --      
    --  :create index    on    (   );
    create index index_createtime on test (createtime);
    색인 보기
    
    --  :show index from   \G
    show index from test\G
    색인 삭제 방법
    
    --  :drop index      on   ;
    drop index unique_username on test;
    --  :alter table    drop index    ;
    alter table test drop index createtime;
    주 키 인덱스
    홈 키 색인 이란 무엇 입 니까?
    홈 키 에 색인 을 추가 하 는 것 은 홈 키 색인 입 니 다.이것 은 특수 한 유일한 색인 입 니 다.빈 값 이 있 는 것 을 허용 하지 않 고 유일한 색인(unique 는 빈 값 으로 허용 합 니 다)입 니 다."PRIMARY KEY"로 지정
    메 인 키:메 인 키 는 표 의 한 열 입 니 다.이 열의 값 은 표 의 모든 줄 의 데 이 터 를 표시 하 는 데 사 용 됩 니 다.메모:시계 마다 메 인 키 만 있 을 수 있 습 니 다.
    홈 키 만 들 기:
    
    --1)        
    
    --2)          
    --  :alter table    add primary key (   );
    alter table test add primary key (id);
    홈 키 삭제:
    
    --  :alter table    drop primary key;
    alter table test drop primary key;
    메모:자가 증가 가 있 는 경우 자가 증 가 를 삭제 해 야 홈 키 를 삭제 할 수 있 습 니 다.
    
    ​--    :
    alter table test change id id int(7) unsigned zerofill not null;
    전체 텍스트 인덱스
    전문 색인 이란 무엇 입 니까?
    전체 텍스트 색인 은 데이터베이스 에 저 장 된 글 이나 문장 등 임의의 내용 정 보 를 찾 아 낸 색인 이 며 단 위 는 단어 입 니 다.전체 텍스트 색인 도 현재 검색엔진 이 사용 하고 있 는 관건 적 인 기술 이다.fulltext 로 지정
    
    --      sql:
    create table command (
      id int(5) unsigned primary key auto_increment,
      name varchar(10),
      instruction varchar(60)
    )engine=MyISAM;
    
    --    sql:
    insert into command values('1','ls','list directory contents');
    insert into command values('2','wc','print newline, word, and byte counts for each file');
    insert into command values('3','cut','remove sections from each line of files');
    insert into command values('4','sort','sort lines of text files');
    insert into command values('5','find','search for files in a directory hierarchy');
    insert into command values('6','cp','         ');
    insert into command values('7','top','display Linux processes');
    insert into command values('8','mv','     ,  ');
    insert into command values('9','   ','is,not,me,yes,no ...');
    전체 텍스트 인덱스 추가:
    
    --1)            
    
    --2)  alter  
    alter table command add fulltext(instruction);
    전체 텍스트 인덱스 사용:
    
    --  :select * from    where match (   ) against ('    ');
    select * from command where match(instruction) against ('sections');
    일치 도 보기:
    
    select * from command where match(instruction) against ('directory');
    정지 단어:
    주파수 가 매우 높 은 단어 가 나타 나 면 전체 텍스트 색인 을 무효 화 할 것 이다.
    in boolean mode 모드:
    in boolean mode:전체 텍스트 검색 모드 를 불 전체 텍스트 검색 으로 지정 한 다 는 뜻 입 니 다.
    
    --  :select * from    where match (   ) against ('    ' in boolean mode);
    select * from command where match(instruction) against ('direct*' in boolean mode);
    주의 점:마스크*를 사용 할 때 단어의 뒤에 만 놓 을 수 있 고 앞 에 놓 을 수 없습니다.
    전체 텍스트 인덱스 삭제:
    
    alter table command drop index instruction;
    주의 점 요약:
    4.567917.일반적인 상황 에서 전체 텍스트 색인 을 만 드 는 필드 데이터 형식 은 char,varchar,text 입 니 다.다른 필드 형식 은 안 됩 니 다.
    4.567917.전문 색인 은 매우 빈번 한 단 어 를 대상 으로 색인 을 하지 않 는 다.예 를 들 어 is,no,not,you,me,yes 이런 것들 을 우 리 는 정지 어 라 고 부른다영문 검색 시 대소 문자 무시외부 키 제약 조건
    무엇이 외 키 입 니까?
    외부 키 는 두 표 데이터 간 의 링크 에 작용 하 는 한 열 또는 여러 열 로 표 와 표 간 의 데이터 의 완전 성과 정확성 을 확보 하 는 데 사용 된다.
    외부 키 제약 조건 추가:
    
    --  :foreign key (   ) references      (       )
    --​  :               
    
    --create table    :
    CREATE TABLE `employee` (
     `empno` int(11) NOT NULL COMMENT '    ',
     `ename` varchar(50) DEFAULT NULL COMMENT '    ',
     `job` varchar(30) DEFAULT NULL,
     `mgr` int(11) DEFAULT NULL COMMENT '      ',
     `hiredate` date DEFAULT NULL COMMENT '    ',
     `sal` decimal(7,2) DEFAULT NULL COMMENT '  ',
     `deptnu` int(11) DEFAULT NULL COMMENT '    ',
     PRIMARY KEY (`empno`),
     foreign key (deptnu) references dept(deptnu)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    --alter table   :
    alter table employee add foreign key (deptnu) references dept(deptnu);
    외부 키 제약 조건 삭제:
    메모:외부 키 색인 을 제거 하기 전에 외부 키 제약 을 삭제 해 야 색인 을 삭제 할 수 있 습 니 다.
    
    mysql> alter table employee drop index deptnu;
    ERROR 1553 (HY000): Cannot drop index 'deptnu': needed in a foreign key constraint
    mysql> 
    mysql> alter table employee drop foreign key employee_ibfk_1;
    Query OK, 0 rows affected (0.01 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql> 
    mysql> alter table employee drop index deptnu;
    Query OK, 0 rows affected (0.01 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    주의 점 요약:
    4.567917.두 개의 표,메 인 키 와 외부 키 의 필드 유형 은 반드시 같 아야 한다
  • 외부 키 구속 표를 사용 하려 는 엔진 은 반드시 InnoDB 엔진 이 어야 한다.MyISAM 은 효과 가 없다
  • 4.567917.외부 키 색인 을 제거 하기 전에 반드시 외부 키 제약 을 삭제 해 야 색인 을 삭제 할 수 있 습 니 다연합 색인
    무엇이 연합 색인 입 니까?
    연합 색인 은 조합 색인 또는 복합 색인 이 라 고도 부 르 며,두 열 또는 여러 열 이상 에 세 워 진 색인 이다.
    연합 색인 만 들 기
    
    --  :alter table    add index(  1,  2,  3);
    alter table test add index(username,servnumber,password);
    연합 색인 삭제
    
    --  :alter table test drop index    ;
    alter table test drop index username;
    왜 여러 개의 단일 색인 을 사용 하지 않 고 연합 색인 을 사용 합 니까?
    연합 색인 의 효율 은 단일 색인 보다 훨씬 높다.세 개의 단일 색인 을 만 들 고 검색 조건 에 도 이 세 열 이 존재 한다 면 MySQL 은 세 개의 색인 을 모두 사용 하지 않 고 가장 좋 은 열 색인 만 선택 할 것 입 니 다.
    연합 색인 의 최 좌 원칙
    위의 색인 을 예 로 들 면 검색 조건 에 username 이 있어 야 이 색인 을 사용 할 수 있 습 니 다.그렇지 않 으 면 이 색인 을 사용 하지 않 습 니 다.
    주의 점 요약:
    4.567917.색인 이 많 을 수록 좋 은 것 이 아니 라 너무 많은 색인 은 데이터 의 유지 속 도 를 증가 시 키 고 디스크 공간의 낭 비 를 증가 시 킬 수 있다4.567917.표 의 데이터 양 이 많 을 때 색인 을 만 드 는 것 을 고려 할 수 있다4.567917.표 에서 데 이 터 를 자주 찾 는 필드 는 색인 을 만 드 는 것 을 고려 할 수 있다4.567917.표 에 있 는 데이터 의 유일 성 을 확보 하려 면 유일한 색인 을 만 드 는 것 을 고려 할 수 있다4.567917.두 장의 표 에 있 는 데이터 의 완전 성과 정확성 을 확보 하려 면 외부 키 의 제약 을 고려 할 수 있다4.567917.다 열 데 이 터 를 자주 조회 할 때 연합 색인 을 만 드 는 것 을 고려 할 수 있다이상 은 MySql 저장 엔진 과 색인 에 관 한 지식 을 정리 한 상세 한 내용 입 니 다.MySql 저장 엔진 과 색인 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기