>  기사  >  데이터 베이스  >  mysql 뷰에 인덱스가 있나요?

mysql 뷰에 인덱스가 있나요?

WBOY
WBOY원래의
2022-03-02 15:32:264930검색

mysql에는 뷰에 인덱스가 없습니다. 뷰는 실제로 데이터베이스에 존재하지 않는 가상 테이블이므로 기본 키나 인덱스가 없습니다. 뷰에는 행과 열이 없기 때문에 뷰가 호출되면 시스템이 먼저 실행합니다. 뷰를 생성하는 문을 생성한 다음 뷰를 기반으로 쿼리합니다.

mysql 뷰에 인덱스가 있나요?

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql 뷰에는 인덱스가 있나요?

뷰에는 인덱스가 없습니다. 뷰는 가상 테이블이고 실제로 데이터베이스에 존재하지 않으므로 행과 열이 없기 때문에 기본 키나 인덱스가 없습니다. 모두 본질적으로 명령문입니다. 뷰를 호출하면 데이터베이스 관리 시스템은 먼저 뷰에 캡슐화된 명령문을 찾고, 먼저 뷰를 생성하는 명령문을 실행한 다음, 뷰를 기반으로 쿼리합니다.

사용할 수 없습니다. (인덱스와 트리거는 나중에 분석하겠습니다.)

일반 테이블과 함께 사용할 수 있으며, 뷰와 일반 테이블을 조인하는 SQL 문을 편집할 수 있습니다.

뷰를 사용하여 데이터를 업데이트(추가, 삭제, 수정)하는 경우 뷰 자체에는 데이터가 없기 때문에 이러한 작업은 일반 테이블에 직접 적용되지만 모든 뷰가 뷰에서와 같이 업데이트 작업을 수행할 수 있는 것은 아닙니다. 그룹화 기준, 조인, 하위 쿼리, 합집합(unoin), 집계 함수(합계/개수 등), 계산된 필드, DISTINCT 등은 뷰를 업데이트할 수 없으므로 이전 예도 업데이트할 수 없습니다. 뷰는 데이터 검색을 위해 더 많이 업데이트되므로 업데이트에 대해 너무 자세히 설명할 필요가 없습니다.

뷰의 본질

이제 뷰의 생성과 사용이 비교적 명확해졌습니다. 이제 뷰의 본질을 더 깊이 이해할 준비가 되었습니다. 쿼리하면 일반 테이블에서 동적으로 데이터를 가져와서 결합할 뿐이지만 테이블처럼 보입니다. 원칙은 다음 그림에서 분명합니다.

mysql 뷰에 인덱스가 있나요?

실제로 일반 테이블에 대한 사용자의 쿼리 작업을 제한하는 데에도 뷰가 사용되는 경우가 있습니다. 이러한 사용자에게는 해당 뷰에 대한 선택 작업 권한만 부여되어 읽기만 허용됩니다. 특정 행이나 열의 데이터. 이러한 방식으로 행과 열 읽기를 제한하기 위해 데이터베이스 권한 설정을 직접 사용할 필요가 없으며 권한 세분화 문제도 피할 수 있습니다.

추천 학습: mysql 비디오 튜토리얼

위 내용은 mysql 뷰에 인덱스가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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