PHPz2017-04-17 16:52:13
매우 간단하고 실용적인 해결책은 중간 테이블을 만들어 시간을 교환하는 공간입니다.
또한, 데이터의 양이 일정 수준에 도달하면 데이터베이스와 테이블을 분리하는 것을 고려해보세요. mycat 미들웨어를 보면 됩니다.
大家讲道理2017-04-17 16:52:13
개인적으로 테이블을 하나씩 제외하여 어떤 테이블이 쿼리 속도에 영향을 미치는지 확인한 후 이를 기반으로 인덱스 최적화를 수행하는 것이 좋습니다.
高洛峰2017-04-17 16:52:13
데이터베이스 최적화의 관점에서 볼 때 최종 결과는 단지 개수(*)와 많은 수의 연결일 뿐이므로 메모리 소모와 시간 낭비가 발생합니다.
아이디어를 알려주세요.
SQL 결과를 다음과 같이 만드세요.
< /p>
최종 개수(*)는 각 행의 수량을 곱하고 최종 더한 것과 같습니다.
즉, (수량 11*수량 12*...*수량 16)+(수량 21*입니다. ..*수량 26)< br>대다수의 데카르트 곱을 줄이기 위해.
SQL:
select t_for_sale.id, nvl(t1.count1, 0), ...
왼쪽 조인(id로 t_user 그룹에서 id, count(*) count1 선택) t1.id=t_for_sale.id의 t1
....
t_for_sale에서