MySQL 보기 및 인덱스 사용
저는 프로젝트에서 코드와 쿼리의 복잡성을 줄이기 위해 뷰를 사용하기 시작하려고 생각했습니다. 일부는 몇 개의 조인을 가지고 있습니다. 제가 알기로는 MySQL 뷰를 사용하면 여러 곳에서 데이터를 좀 더 쉽게 참조할 수 있을 것입니다.
"MySQL은 뷰에 인덱스를 사용하지 않습니다.", "인덱스된 뷰를 가질 수 없습니다.", "MERGE를 사용하는 경우에만"...명쾌한 답은 없습니다.
자, 그럼 끝으로 넘어가겠습니다.MySQL 뷰는 작성된 테이블의 인덱스를 사용합니까?성능이 최악일 것이기 때문에 뷰를 사용하는 것은 좋지 않은 생각입니까, 아니면 조인할 때 기본 테이블의 인덱스를 사용할 것입니까?테이블에서 색인화된 열로 보기를 정렬해도 보통처럼 빠르게 정렬됩니까?
제가 조사한 바로는 뷰는 인덱스를 사용하지 않는다는 것을 알 수 있습니다. 하지만 만약 그런 경우라면 아무도 인덱스를 사용하지 않을 것입니다. 사람들은 분명히 인덱스를 사용합니다. 그래서...?
황당해 보인다면 죄송합니다.
보기를 쿼리하는 경우 MySQL은 기본 테이블의 인덱스를 사용하는 것을 고려합니다.
그러나 뷰에서 계산된 열에 새 인덱스를 추가할 수는 없습니다.예를 들어 SQL Server의 인덱싱된 뷰가 아닌 MySQL에 인덱싱된 뷰가 없다는 것이 사람들이 의미하는 바라고 생각합니다.
MySQL 뷰는 작성된 테이블의 인덱스를 사용합니까?
네.
사람들이 그들이 말할 때 언급하는 것.MySQL doesn't use indexes for views
라고 하는 것에 관한 것입니다.materialized views
아니면indexed views
실제 보기가 일반 테이블처럼 파일 시스템에 물리적으로 저장되는 위치.Oracle 또는 SQL Server와 같은 일부 DBMS에서 이러한 보기에 대한 인덱스를 만들 수 있습니다.기본적으로.indexed views
그것을 구성하는 원래의 표의 복사본이 됩니다.kept in sync automatically
, 일종의 연설
예를 들어 SQL Server의 Indexed Views에 대한 이 기사를 읽어 보십시오.
언급URL : https://stackoverflow.com/questions/7922675/mysql-views-and-index-use
'programing' 카테고리의 다른 글
강제 "자화" 방향 모드 (0) | 2023.10.21 |
---|---|
.gitignore & .hgignore & svn에 따라 rsync 제외: --filter=:C와 같은 ignore (0) | 2023.10.21 |
XAMPP 및 워드프레스 - 느린 로딩 (0) | 2023.10.21 |
electron - node.js - ng : 파일 경로\ng.ps1이 이 시스템에서 실행 중인 스크립트가 사용되지 않도록 설정되어 있으므로 로드할 수 없습니다. (0) | 2023.10.21 |
C 포인터 및 배열: [Warning] 할당은 캐스트가 없는 정수에서 포인터를 만듭니다. (0) | 2023.10.21 |