MySQL联合查询和简单查询究竟如何选择?
巴扎黑
巴扎黑 2017-04-17 16:03:20
0
3
792

最近看高性能MySQl,里面是推荐把联合查询分解为多个简单的查询,既然是这样 那么还要联合查询干嘛?究竟是如何选择才是效率更高的选择呢?

巴扎黑
巴扎黑

모든 응답(3)
迷茫

간단한 결합 쿼리는 일반적으로 분해할 필요가 없습니다. 여기서 말하는 것은 쿼리가 더 복잡하고 그룹화, 정렬 등을 포함하는 경우 3개 또는 4개 테이블의 결합 쿼리와 같은 더 복잡한 결합 쿼리입니다. ., 런타임에는 인덱스를 효과적으로 사용할 수 없습니다. 임시 테이블을 만드는 것도 가능합니다. 그러면 효율성이 상대적으로 떨어지게 됩니다. 그리고 쿼리 캐싱에는 도움이 되지 않습니다. 분해 후 각 단순 쿼리에 대해 데이터베이스에는 쿼리 캐싱 메커니즘이 있어 더욱 효율적입니다. 설명을 사용하여 공동 쿼리 문을 분석해 보십시오. 문제점은 무엇입니까? 대상 수정을 수행합니다. 분해할 때가 되면 분해해야 합니다.

黄舟

으아악 으아악

위는 단순한 사례입니다. 사실 공동 쿼리를 여러 개의 단순 쿼리로 분해한다는 것이 무슨 뜻인지 잘 이해가 되지 않습니다. 위의 내용은 개인적인 최적화(분해) 계획 중 일부일 뿐입니다. 매번 발생하지 않는 방식입니다).

당신이 말하는 분해가 조인트 테이블을 여러 문으로 분할한 다음 코드에서 순차적으로 호출하는 것이라면 데이터베이스에 대한 각 연결의 IO 오버헤드는 조인트 테이블보다 훨씬 낮다고 생각합니다. 확실히 1인용 테이블보다 훨씬 높네요.

한 문장으로 공동 테이블 쿼리의 효율성을 최적화한다는 것은 연관을 위해 최소한의 올바른 데이터를 사용한다는 의미입니다

테이블을 연결하기 전에는 최소한의 데이터만 전달할 수 있으므로, 분명히 잘못된 것으로 알려진 데이터가 아직 많이 남아 있는 경우에는 연결을 피하기 위해 미리 올바른 데이터를 추출해야 합니다.

어떤 조인 방식을 사용하더라도 이 방식은 적용 가능합니다.

주문, 필드 유형, 인덱스 등 효율성을 높이는 솔루션은
더 많습니다. 범위가 엄청납니다.

伊谢尔伦

인덱스만 잘 활용하면 공동 쿼리에는 문제가 없습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿