MySql 저장 엔진 과 색인 에 관 한 지식 총화
무엇이 데이터베이스 저장 엔진 입 니까?
데이터베이스 엔진 은 데이터베이스 베이스 소프트웨어 구성 요소 로 서로 다른 저장 엔진 은 서로 다른 저장 체제,색인 기법,잠 금 수준 등 기능 을 제공 하고 서로 다른 데이터 베이스 엔진 을 사용 하면 특정한 기능 을 얻 을 수 있다.
어떻게 엔진 을 봅 니까?
--
show engines;
-- :
show create table \G
-- :
show table status\G
테이블 작성 시 엔진 지정
create table yingqin (id int,name varchar(20)) engine='InnoDB';
수정 표 엔진
alter table engine=' ';
기본 엔진 수정MyISAM 과 InnoDB 의 차이
MyISAM:전체 텍스트 인덱스(full text)지원;트 랜 잭 션 지원 하지 않 음;시계 자물쇠;표 의 구체 적 인 줄 수 저장 하기;뿔뿔이 흩 어 져 회복 이 좋 지 않다.
Innodb:사무 지원;이전 버 전 은 전체 텍스트 색인 을 지원 하지 않 았 으 나 5.6 이후 버 전 은 이 기능 을 지원 하기 시작 했다.줄 잠 금(절대 가 아 닙 니 다.sql 문 구 를 실행 할 때 범 위 를 정할 수 없 을 때 도 전체 표를 잠 금 합 니 다.예 를 들 어 update table set id=3 where name like'a%';);표 의 구체 적 인 줄 수 를 저장 하지 않 기;무 너 져 서 회복 하 다.
언제 어떤 엔진 을 선택 하 는 것 이 좋 습 니까?
MyISAM:
사 무 를 필요 로 하지 않 을 때카운트 계산 을 많이 해 요.
InnoDB:
신뢰성 요구 가 높 거나 지원 을 요구 하 는 사무
인덱스
색인 이란 무엇 입 니까?
색인 은 디스크 에 저 장 된 데이터베이스 구조 로 데이터 시트 에 있 는 모든 기록 에 대한 참조 지침 을 포함 하고 있 습 니 다.색인 을 사용 하면 특정한 열 이나 여러 열 에 특정한 값 이 있 는 줄 을 빠르게 찾 을 수 있 습 니 다.
색인 의 장점:
4.567917.유일한 색인 을 만들어 데이터베이스 시트 의 모든 줄 데이터 의 유일 성 을 확보 합 니 다4.567917.데이터 의 검색 속 도 를 가속 화 할 수 있다4.567917.표 데이터 의 완전 성과 정확성 을 확보 할 수 있다.
색인 의 단점:
4.567917.색인 은 물리 적 공간 을 차지 해 야 합 니 다4.567917.표 의 데 이 터 를 변경 할 때 색인 도 동적 유지 에 따라 데이터 의 유지 속 도 를 낮 춰 야 한다색인 의 일반적인 형식:
index:일반 색인
전체 텍스트:전체 텍스트 인덱스조합 색인
일반 인덱스 와 유일한 인덱스
일반 색인 이란 무엇 입 니까?
일반 색인(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.두 개의 표,메 인 키 와 외부 키 의 필드 유형 은 반드시 같 아야 한다
무엇이 연합 색인 입 니까?
연합 색인 은 조합 색인 또는 복합 색인 이 라 고도 부 르 며,두 열 또는 여러 열 이상 에 세 워 진 색인 이다.
연합 색인 만 들 기
-- :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 저장 엔진 과 색인 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL 시리즈 7 MySQL 저장 엔진Memory:모든 데 이 터 를 RAM 에 저장 하여 참고 와 유사 한 데 이 터 를 신속하게 찾 아야 하 는 환경 에서 빠 른 접근 을 할 수 있 도록 합 니 다.임시 데이터 저장 적용.엔진 은 이전에 HEAP 엔...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.