MySql의 인덱스와 제약 조건의 사용법과 차이점
1. 인덱스란 무엇인가요?
Index는 MySQL이 데이터를 효율적으로 얻는 데 도움이 되는 데이터 구조입니다.
데이터베이스는 데이터를 저장하는 것 외에도 특정 검색 알고리즘을 만족하는 데이터 구조를 유지하므로 이러한 데이터 구조는 어떤 방식으로든 데이터를 참조(지시)하므로 이러한 데이터 구조에 고급 검색 알고리즘을 구현할 수 있습니다. 이 데이터 구조는 인덱스입니다. 인덱스는 MySQL의 검색 속도를 크게 향상시킬 수 있습니다.
MySQL에서는 기본 키 열에 대해 MySQL이 자동으로 고유 및 인덱스를 설정했습니다.
a. 인덱스 생성:
create table 表名( id int not null, name varchar(10) not null, index(name(length)) //使用name字段作为索引 );
b. 인덱스 표시:
show index from 表名;
c. 인덱스 삭제:
alter table 表名 drop index name;
제약조건은 데이터의 무결성과 일관성을 보장하기 위한 것입니다. 제약조건은 필드 수에 따라 열 수준 제약조건과 테이블 수준 제약조건으로 구분됩니다.
열 수준 제약 조건: 특정 필드에 사용됩니다.
테이블 수준 제약 조건: 두 개 이상의 필드에 사용됩니다.
제약 조건 유형 | Definition |
null 아님 | non-null 제약 조건 |
기본 키 | 기본 키 제약 조건 |
고유 키 | 고유 제약조건 |
기본 | 기본 제약 조건 |
외래 키 | 외래 키 제약 조건 |
1), 고유(upique) 제약 조건
고유 제약 조건은 데이터베이스 테이블의 각 레코드를 고유하게 식별합니다.
고유 키 제약 조건과 기본 키 제약 조건 모두 열에 대한 고유성을 보장합니다.
기본 키는 자동으로 고유 제약 조건으로 정의됩니다.
참고: 각 테이블에는 여러 개의 고유 제약 조건이 있을 수 있지만 각 테이블에는 기본 키 제약 조건이 하나만 있을 수 있습니다.
//第一种方式 create table persons( id_p int not null, address varchar(255), city varchar(255), phone varchar(11) unique //定义字段的同时,定义约束 ); //第二种方式 create table persons( id_p int not null, address varchar(255), city varchar(255), phone varchar(11), unique phone(phone) //单独一行命令,定义约束 ); //第三种方式 alter table persons add unique city(city); //表后添加(修改表)
2) 기본 제약 조건
은 해당 열의 값의 기본값을 제한하는 데 사용됩니다(기본값이 null이 아닌 이상 null 값을 삽입할 수 없습니다).
create table persons( id tinyint primary key auto_increment, name varchar(30), sex enum('m','w')default 'm' //定义sex默认值为'm' );
3), 기본 키 제약
각 데이터 테이블에는 기본 키가 하나만 있을 수 있습니다. 기본 키는 레코드의 고유성을 보장하며 기본 키는 자동으로 null이 아닙니다. 테이블).
기본 키가 없는 테이블에 기본 키 추가
alter table 表名 add primary key (字段名);
4), 외래 키 제약 조건
외래 키 제약 조건은 데이터 일관성과 무결성을 유지하고 일대일 또는 다대일을 달성하기 위한 것입니다. -많은 관계.
하위 테이블(외래 키 열이 있는 테이블) 및 상위 테이블(하위 테이블에서 참조하는 테이블)의 경우 스토리지 엔진은 innoDB만 가능합니다.
외래 키 열과 참조 열의 데이터 유형은 유사해야 합니다.
숫자형인 경우 숫자와 부호비트의 길이가 같아야 하는지
문자형의 길이는 다를 수 있음
외래키 열과 참조열은 반드시 인덱스를 생성해야 함(없을 경우) 외래 키 열에 대한 인덱스가 존재하면 MySQL은 자동으로 인덱스를 생성합니다.
//先创建父表,子表才能建外键,父表和子表必须都是innodb引擎。 //city父表 create table city( id tinyint primary key, name varchar(10) not null )engine=INNODB; //students子表 create table students( id tinyint primary key auto increment, //定义字段时同时定义 city tinyint, //外键字段类型要与主表相同 foreign key(city) references city(id), //city字段作为外键,引用city表中的id )engine=INNODB; //主表的数据可以修改,但不能删除 //删除city中的记录 delete from city where id=1; //创建外键以后,再删除city记录,就会报错 ERROR 1451(23000):Cannot delete or update a parent row: a foreign key constraint fails(`hxsd`.`students`, CONSTRAINT `students ibfk 1` FOREIGN KEY(`city`) REFERENCES `city`(`id`)
3. 제약 조건 삭제
a. 기본 키 삭제
alter table 表名 drop primary key;
b. 외래 키 제약 조건 삭제
alter table 表名 drop index index_name;
4.
인덱스는 데이터베이스 자체를 지향하며 쿼리 최적화와 같은 작업에 사용되는 반면 제약 조건은 비즈니스 관계에 더 가깝습니다.
보통 UNIQUE 제약 조건을 생성할 때 데이터베이스는 고유하게 검사할 때 필드에 인덱스가 있으면 더 빠를 것이라고 생각하기 때문에 고유 인덱스를 자동으로 획득하므로, UNIQUE 제약 조건을 생성하면 기본적으로 고유 인덱스가 생성됩니다. 마찬가지로 공통 기본 키는 고유 제약 조건과 인덱스입니다. 그러나 not null과 같은 제약 조건의 경우 데이터베이스는 인덱스를 생성하지 않습니다.
위 내용은 MySql의 인덱스와 제약 조건의 사용법과 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











InnoDB의 전체 텍스트 검색 기능은 매우 강력하여 데이터베이스 쿼리 효율성과 대량의 텍스트 데이터를 처리 할 수있는 능력을 크게 향상시킬 수 있습니다. 1) InnoDB는 기본 및 고급 검색 쿼리를 지원하는 역 색인화를 통해 전체 텍스트 검색을 구현합니다. 2) 매치 및 키워드를 사용하여 검색, 부울 모드 및 문구 검색을 지원합니다. 3) 최적화 방법에는 워드 세분화 기술 사용, 인덱스의 주기적 재건 및 캐시 크기 조정, 성능과 정확도를 향상시키는 것이 포함됩니다.

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

전체 테이블 스캔은 MySQL에서 인덱스를 사용하는 것보다 빠를 수 있습니다. 특정 사례는 다음과 같습니다. 1) 데이터 볼륨은 작습니다. 2) 쿼리가 많은 양의 데이터를 반환 할 때; 3) 인덱스 열이 매우 선택적이지 않은 경우; 4) 복잡한 쿼리시. 쿼리 계획을 분석하고 인덱스 최적화, 과도한 인덱스를 피하고 정기적으로 테이블을 유지 관리하면 실제 응용 프로그램에서 최상의 선택을 할 수 있습니다.

예, MySQL은 Windows 7에 설치 될 수 있으며 Microsoft는 Windows 7 지원을 중단했지만 MySQL은 여전히 호환됩니다. 그러나 설치 프로세스 중에 다음 지점이 표시되어야합니다. Windows 용 MySQL 설치 프로그램을 다운로드하십시오. MySQL의 적절한 버전 (커뮤니티 또는 기업)을 선택하십시오. 설치 프로세스 중에 적절한 설치 디렉토리 및 문자를 선택하십시오. 루트 사용자 비밀번호를 설정하고 올바르게 유지하십시오. 테스트를 위해 데이터베이스에 연결하십시오. Windows 7의 호환성 및 보안 문제에 주목하고 지원되는 운영 체제로 업그레이드하는 것이 좋습니다.

클러스터 인덱스와 비 클러스터 인덱스의 차이점은 1. 클러스터 된 인덱스는 인덱스 구조에 데이터 행을 저장하며, 이는 기본 키 및 범위별로 쿼리에 적합합니다. 2. 클러스터되지 않은 인덱스는 인덱스 키 값과 포인터를 데이터 행으로 저장하며 비 예산 키 열 쿼리에 적합합니다.

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

기사는 MySQL에서 파티셔닝, 샤딩, 인덱싱 및 쿼리 최적화를 포함하여 대규모 데이터 세트를 처리하기위한 전략에 대해 설명합니다.

이 기사에서는 Drop Table 문을 사용하여 MySQL에서 테이블을 떨어 뜨리는 것에 대해 설명하여 예방 조치와 위험을 강조합니다. 백업 없이는 행동이 돌이킬 수 없으며 복구 방법 및 잠재적 생산 환경 위험을 상세하게합니다.
