그 외

1. 마스터 DB Query 과다 사용으로 인한 서버 부하

📍 Slave 사용방법

  • Slave DB가 존재하는 상점에서만 사용할 수 있습니다.

  • 동적으로 DB의 값이 변경되는 쿼리는 사용하지 마세요.

  • 정적인 값을 보유한 쿼리인 경우 다음과 같이 DB 객체에 slave()를 한번 더 호출

    • master : $this->db->query_fetch()

    • slave : $this->db->slave()->query_fetch()

  • 만약, slave method를 사용하더라도 slave가 없는 경우 자동으로 master 전환 처리됨

  • 활용방법

    • 페이징 처리를 위한 count 쿼리

    • 실시간으로 update 된 데이터를 보여줄 필요가 없는 쿼리

    • 기타 설정을 저장하는 쿼리 등

    • 위 쿼리들에 대해서는 slave() 메소드를 붙여서 사용하시기를 권장합니다.

2. 분산서버를 고려하지 않고 기능을 만든 경우

⛔️ As-Is

✅ To-be

3. 고도몰이 정의한 DB의 값을 임의의 값으로 변경하는 경우

⛔️ As-Is

✅ To-be

4. 모든 영향 범위에 튜닝 내용을 적용하지 않은 경우

⛔️ As-Is

✅ To-be

5. DB에 이미지 바이너리데이터를 넣은 경우

⛔️ As-Is

✅ To-be

6. NOT NULL 필드 추가 시 기본값 설정 필수

📍 기본값 지정

  • 필드 정의 시 DEFAULT 키워드를 사용하여 기본값을 지정하세요.

  • 예) ALTER TABLE your_table ADD COLUMN new_column VARCHAR(255) NOT NULL DEFAULT 'default_value';

Last updated

Was this helpful?