(1) DB 부하를 줄인다

웹서버는 보통 stateless 하기 때문에 수평확장 쉬움

하지만 DB는 수평확장이 어려움

정규화 끊고 샤딩하고 ..

그니까 최대한 DB를 힘들게 하지 말아야 한다

- 저장프로시저

- 각종 함수, 연산자

- 트랜잭션

등은 최대한 쓰지 않는다 (웬만하면 어플리케이션에서 땜질할 수 있음)

쿼리는 항상 인덱스 타도록 한다

이상한 컬럼 죄다 갖고오지 않도록 SELECT * 쓰지 않는다

똑같은거 자꾸 DB에 요청하지 않도록 캐싱도 한다


(2) cdn을 쓴다

정적파일같은건 안그래도 바쁜 웹서버에서 줄 필요가 없다


(3) 수평확장을 한다

서버는 Loadbalancer 쓰고, 캐시는 Consistent Hashing 해서 수평확장할 수 있게 한다

서버는 autoscaling 할 수 있게 한다

(DB 커넥션때문에 무한대 수평확장은 불가능하다)


(4) 클라이언트에서 캐싱한다


===


더 있는데 나머진 나중에