12 인터페이스 최적화 아이디어

1. 일괄 처리 및 일괄 사고

배치 작업 데이터베이스는 이해하기 쉽습니다. 루프 삽입 시나리오의 인터페이스에서 배치 실행이 완료된 후 한 번에 데이터베이스를 삽입하거나 업데이트할 수 있으므로 여러 IO를 피할 수 있습니다.

2. 비동기 처리 비동기 사고

시간이 오래 걸리고 결과에 필요하지 않은 로직의 경우 인터페이스 시간을 줄일 수 있는 비동기 실행을 고려할 수 있습니다.

3. 공간을 시간으로 바꾸는 생각

공간을 시간과 교환하는 잘 이해된 예는 캐시의 합리적인 사용입니다.자주 사용하고 자주 변경되지 않는 일부 데이터에 대해 미리 캐시할 수 있으며 필요할 때 캐시를 직접 확인하여 빈번한 데이터베이스 쿼리 또는 반복 계산.

4. 전처리는 아이디어를 미리 가져오는 것입니다.

쿼리 데이터를 미리 계산하여 캐시 또는 테이블의 특정 필드에 넣어 사용하면 인터페이스 성능이 크게 향상됩니다. 위의 예와 비슷하지만 초점이 다릅니다.

5. 풀링 사고

우리는 모두 데이터베이스 연결 풀, 스레드 풀 등을 사용했습니다. 이것은 풀 아이디어의 구현입니다. 그들이 해결하는 문제는 재사용할 수 있는 개체 또는 연결의 반복 생성을 피하고 불필요한 손실을 방지하는 것입니다. 결국 생성 및 파괴에도 시간이 걸립니다.

6. 직렬 대 병렬 직렬 사고

현재 실행 로직은 실행 전에 이전 실행 로직이 실행될 때까지 기다려야 합니다.병렬이란 두 실행 로직이 서로 간섭하지 않는다는 것을 의미하므로 병렬 처리는 상대적으로 시간을 절약합니다.물론 다음과 같은 전제가 있습니다. 결과 매개변수에 의존하지 않습니다.

7. 색인

인덱스를 추가하면 데이터 쿼리의 효율성을 크게 향상시킬 수 있으며 이는 인터페이스 설계에서도 고려하겠지만 인덱스가 실패하는 장면에 주의를 기울여야 합니다.

8. 소위 대기업 문제를 피하십시오

실행 시간이 긴 트랜잭션이며 트랜잭션이 지속적으로 커밋되지 않기 때문에 데이터베이스 연결이 점유되어 다른 데이터베이스 액세스 요청에 영향을 미치고 다른 인터페이스의 성능에 영향을 미칩니다.

9. 프로그램 구조 최적화 프로그램 구조 문제

일반적으로 요구 사항을 여러 번 반복한 후에 발생하며 코드가 중첩됩니다. 반복되는 쿼리 및 개체의 다중 생성과 같은 시간이 많이 걸리는 문제가 발생합니다. 여러 사람이 프로젝트를 유지 관리할 때 더 일반적입니다. 해결 방법도 비교적 간단하여 인터페이스를 전체적으로 리팩토링하고, 각 코드 블록의 기능과 목적을 평가하고, 실행 순서를 조정해야 합니다.

10. 깊은 페이지 매김 문제
11. SQL 최적화

SQL 최적화는 인터페이스의 쿼리 성능을 크게 향상시킬 수 있습니다.

12. 잠금 세분성

대략적인 잠금을 피하는 것은 일반적으로 높은 동시성 시나리오에서 공유 리소스를 보호하는 수단이지만 잠금 세분성이 너무 대략적인 경우 인터페이스 성능에 큰 영향을 미칩니다. 잠금 세분성 정보: 잠금 범위가 얼마나 큰지, 동기화된 잠금인지 redis 분산 잠금인지 여부를 의미하며 중요한 리소스만 잠그면 되고 공유 리소스를 포함하지 않는 경우 잠글 필요가 없습니다. , 화장실에 가고 싶은 것처럼 , 화장실 문만 잠그면 되고 거실 문은 잠그지 않아도 됩니다.

Supongo que te gusta

Origin blog.csdn.net/weixin_43431218/article/details/130030235
Recomendado
Clasificación