[SQL] 그것은 MySQL의에서 인덱싱 된 뷰를 가질 수 있습니까?
SQL그것은 MySQL의에서 인덱싱 된 뷰를 가질 수 있습니까?
나는 2005에서 MySQL을 포럼에 게시하지만, 그것보다 더 최근의 아무것도를 발견했다. 그 바탕으로, 그것은 불가능합니다. 그러나 많은 3 ~ 4 년 동안 변경할 수 있습니다.
내가 찾고 색인화되지 않은 상태로 유지 볼 테이블을 뷰를 통해 인덱스가 있지만이하는 방법입니다. 인덱싱은 쓰기 과정을 아파하고이 테이블이 꽤 자주 기록됩니다 (지점 어디 기어에 인덱싱 느려 다). 그러나 인덱스의 부족 내 쿼리가 천천히 고통스럽게 만든다.
해결법
-
==============================
1.나는 MySQL의 지원은 당신이 필요로하는 것이 무엇 인 전망을 구체화 생각하지 않지만, 어쨌든이 상황에서 당신을 도울 것입니다. 인덱스 뷰 또는 기본 테이블에 있는지 여부는 여전히 쓰기 속도 문제가 발생할 것입니다, 그래서 그것은 기본 테이블의 업데이트 중에 작성된 어떤 시점에서 업데이트해야합니다.
나는 MySQL의 지원은 당신이 필요로하는 것이 무엇 인 전망을 구체화 생각하지 않지만, 어쨌든이 상황에서 당신을 도울 것입니다. 인덱스 뷰 또는 기본 테이블에 있는지 여부는 여전히 쓰기 속도 문제가 발생할 것입니다, 그래서 그것은 기본 테이블의 업데이트 중에 작성된 어떤 시점에서 업데이트해야합니다.
가장 좋은 방법은 아마 주기적으로 업데이트받을 요약 테이블을 작성하는 것입니다.
-
==============================
2.당신은 그들이 모두 자신의 고유 한 요구 사항을 충족하기 위해 전문 수 있도록 당신의 분석 처리 데이터로부터 데이터를 처리하는 거래를 추출 생각 해 봤나?
당신은 그들이 모두 자신의 고유 한 요구 사항을 충족하기 위해 전문 수 있도록 당신의 분석 처리 데이터로부터 데이터를 처리하는 거래를 추출 생각 해 봤나?
기본적인 아이디어의 존재는 정기적으로 변경되는 데이터의 한 버전을 가지고, 이것은 트랜잭션 처리 측의 수 및 쓰기 조작이 빠른 그래서 무거운 정상화 빛 인덱스를 필요로한다. 데이터의 두 번째 버전은 분석 처리에 대한 구조적이고 덜 정규화 더 많이보고 빠른 조작에 인덱싱되는 경향이있다.
데이터는 주변 분석 처리는 일반적으로 육면체의 모서리를 나타내는 큐브 및 차원 테이블의 양쪽을 나타내는 점 테이블 구성되고, 데이터웨어 하우징의 큐브 방법론 중심으로 구성되어있다.
-
==============================
3.Flexviews 지원은 기본 테이블에 대한 변경 사항을 추적하고, 같은 기능보기를 구체화 테이블을 업데이트하여 MySQL의에서 구체화 된 뷰를. SQL 뷰에서 지원하는 이러한 접근 수단이 제한 비트 (변경으로 로깅 루틴은 변화를 추적해야하는 테이블 파악해야)하지만, 내가 아는 한 이것은 당신이 MySQL의에서 구체화 된 뷰를 얻을 수있는 가장 가까운 .
Flexviews 지원은 기본 테이블에 대한 변경 사항을 추적하고, 같은 기능보기를 구체화 테이블을 업데이트하여 MySQL의에서 구체화 된 뷰를. SQL 뷰에서 지원하는 이러한 접근 수단이 제한 비트 (변경으로 로깅 루틴은 변화를 추적해야하는 테이블 파악해야)하지만, 내가 아는 한 이것은 당신이 MySQL의에서 구체화 된 뷰를 얻을 수있는 가장 가까운 .
-
==============================
4.당신은 하나의 인덱싱 된 뷰를 원하십니까? 그것은 단지 하나의 인덱스가있는 테이블에 기록하는 것을 중단 될 가능성은 적습니다. 기본 키가 없습니다?
당신은 하나의 인덱싱 된 뷰를 원하십니까? 그것은 단지 하나의 인덱스가있는 테이블에 기록하는 것을 중단 될 가능성은 적습니다. 기본 키가 없습니다?
각 레코드가 큰 경우, 당신은 그것을 단축하는 방법을 파악하여 성능을 향상시킬 수 있습니다. 또는 당신이 필요로하는 인덱스의 길이를 단축.
이 쓰기 전용 테이블 인 경우 충전 시작하는 인덱스를 필요로하는, 그것은 기록 (색인 키)을 보관하거나, 그렇지 않으면 삭제 시작 MySQL의에 치명적일 수 있습니다 (업데이트를 수행 할 필요가 없습니다 즉) (재사용) 삭제 키보다는 새로운 인덱스 값을 추가에서 슬롯. 반 직관적는 있지만이 경우 더 큰 테이블이 더 낫다.
from https://stackoverflow.com/questions/244226/is-it-possible-to-have-an-indexed-view-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server 2005의 흥미로운 행동 "테이블에서 등 COLA, COLB을 선택"VS "테이블에서 선택 *" (0) | 2020.04.21 |
---|---|
[SQL] 적색 편이에 SQL 함수 generate_series ()을 사용하여 (0) | 2020.04.21 |
[SQL] SELECT는 각 그룹에서 한 행을 반환 쿼리 (0) | 2020.04.21 |
[SQL] 어떻게 SQL 매개 변수를 전달하고, 내가 필요한 이유는 무엇입니까? (0) | 2020.04.21 |
[SQL] 선택 카운트 (ID) 또는 존재 (...) : 항목의 존재 여부가 있는지 확인하는 가장은 무엇입니까? (0) | 2020.04.21 |