MySQL Views - 사용 시기 및 사용하지 않는 시기
mysql 인증 가이드에서는 보기를 다음 용도로 사용할 수 있다고 제안합니다.
- 계산을 포함할 수 있는 요약 만들기
- WHERE 절이 있는 행 집합 선택, 관련 없는 정보 숨기기
- 가입 또는 조합의 결과
- 다른 응용프로그램을 수용하기 위해 원래 테이블의 스키마를 보존하는 뷰를 통해 기본 테이블에 대한 변경 허용
두 가지 다른 테이블 데이터에 대한 검색을 구현하는 방법은 무엇입니까?
그리고 mysql views는 인덱싱과 좋은 친구가 아니기 때문에 작동하지 않는 것이 맞을지도 모릅니다.그래도.상점 테이블에 검색할 것이 있습니까?
뷰가 인덱싱에서 잘 작동하지 않는다는 것을 알게 되었는데, 편리하게 제공할 수 있도록 성능 면에서 큰 성공을 거둘 수 있을까요?
보기는 단순히 서버에 영구적으로 저장된 SQL 쿼리로 생각할 수 있습니다.쿼리가 최적화하는 인덱스는 무엇이든 사용됩니다.그런 의미에서 SQL 쿼리나 뷰 사이에는 차이가 없습니다.실제 SQL 쿼리보다 성능에 부정적인 영향을 주지 않습니다.서버에 저장되어 있고 실행 시 평가할 필요가 없기 때문에 실제로는 더 빠릅니다.
이러한 추가적인 이점을 제공합니다.
- 재사용 가능성
- 최적화를 위한 단일 원천
인덱싱 뷰에 대한 이 mysql-form-thread는 mysql 뷰가 실제로 무엇인지에 대한 많은 통찰력을 제공합니다.
몇 가지 핵심 사항:
- 보기는 실제로 저장된 선택 문에 지나지 않습니다.
- 뷰의 데이터는 뷰에서 참조하는 테이블의 데이터입니다.
- 뷰에 인덱스를 생성하면 현재 버전에서 작동하지 않습니다.
- 병합 알고리즘을 사용하는 경우 기본 테이블의 인덱스가 사용됩니다.
- 그러나 기본 지수는 보이지 않습니다.보기에 DESCROMPECT는 색인화된 열을 표시하지 않습니다.
MySQL 공식 문서에 따르면 MySQL 보기는 호출 시 결과 집합을 생성하는 저장된 쿼리입니다.
데이터베이스 보기는 가상 테이블 또는 논리 테이블에 불과합니다(일반적으로 조인과 함께 SELECT 쿼리로 구성됨).데이터베이스 보기는 행과 열로 구성된 데이터베이스 테이블과 유사하므로 데이터를 조회할 수 있습니다.
뷰는 다음의 경우에 사용해야 합니다.
- 복잡한 쿼리 단순화(IF ELSE, JOIN 등) 또는 트리거 작업 등)
- 보안 계층을 추가하고 데이터 액세스를 제한 또는 제한(뷰는 가상 테이블에 불과하므로 특정 DB 사용자 집합에 읽기 전용으로 설정하고 INSERT를 제한할 수 있음)
- 하위 호환성 및 쿼리 재사용성
- 계산된 열로 작업 중입니다.계산된 열은 DB 스키마가 잘못된 설계이므로 DB 테이블에 있으면 안 됩니다.
뷰는 다음과 같은 경우 사용해서는 안 됩니다.
- 연관표가 잠정적이거나 빈번한 구조변경을 당합니다.
http://www.mysqltutorial.org/introduction-sql-views.aspx 에 의하면.
데이터베이스 테이블에는 계산된 열이 없어야 하지만 데이터베이스 보기에는 계산된 열이 없어야 합니다.
저는 총계, 개수 등을 계산해야 할 때 뷰를 사용하는 편입니다.
도움이 되길 바랍니다!
mysql replicator와 잘 작동하지 않는 또 하나의 부정적인 측면은 마스터가 슬레이브보다 조금 뒤쳐지는 원인이 되고 있습니다.
http://bugs.mysql.com/bug.php?id=30998
언급URL : https://stackoverflow.com/questions/1483580/mysql-views-when-to-use-when-not-to
'programing' 카테고리의 다른 글
Wordpress 사이트에 대한 도메인 마스킹이 있는 htaccess 리디렉션이 작동하지 않습니다. (0) | 2023.10.23 |
---|---|
A1에서 실제 사용한 셀까지의 범위를 반환합니다. (0) | 2023.10.23 |
jquery In()이 .html()과 함께 작동하지 않는 이유는 무엇입니까? (0) | 2023.10.23 |
Glassfish Admin Console은 java.lang을 던집니다.JDBC 풀을 생성할 때 잘못된 상태 예외가 발생 (0) | 2023.10.23 |
Angularjs 필터 네거티브 (0) | 2023.10.23 |