HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📖
공부한 책
/
데이터베이스를 지탱하는 기술
데이터베이스를 지탱하는 기술
/
4. SQL 문의 특징과 이를 잘 다루는 법 (SQL 실행 효율 체크)

4. SQL 문의 특징과 이를 잘 다루는 법 (SQL 실행 효율 체크)

한 번 만든 테이블은 쉽게 바꿀 수 없음SQL 문의 실행 효율 의식하기SQL의 장점과 단점

한 번 만든 테이블은 쉽게 바꿀 수 없음

  • 이미 만들어진 테이블의 열의 정의 변경, 인덱스 추가/삭제를 온라인(애플리케이션 정지 없이) 상에서 할 수 없음
  • 업데이트가 모두 차단되거나 제품에 따라서는 참조조차 차단되어 버릴 수 있음
  • 테이블 정의를 검토할 필요성에 직면한다면 데이터 양이 너무 커지기 전에 처리를 하는 것이 좋음

SQL 문의 실행 효율 의식하기

  • 적절한 인덱스가 사용되고 있는지 확인
    • WHERE 조건으로 인덱스가 걸려 있지 않은 열에 대한 검색을 하면 테이블 전체 레코드를 검색해야함
  • EXPLAIN : sql 문의 실행 방식이 적절한지 여부를 실제로 실행하지 않고 판정만 해주는 기능
    • EXPLAIN SELECT dept.dept name FROM emp, dept, emp_dept WHERE emp_roman LIKE '%Chie%' AND emp.emp_id = emp_dept.emp_id AND emp_dept.dept_id = dept.dept_id;
    • 해당 쿼리의 반환값 중 rows 가 있는데 해당 필드가 몇 개의 레코드에 액세스했는지에 대한 값임. 즉 이 값이 적으면 적을수록 적은 수의 레코드에 액세스하여 결과를 반환한다는 의미로 더 빠른 쿼리라는 의미
  • 쿼리 분석 도구: 다양한 쿼리를 실행하는 어플리케이션을 운용해 나가다 보면 도대체 어느 쿼리가 느린가 라는 점에서 고민을 하게 됨 ⇒ 이러한 오픈 소스 지원도구가 많음
  • 관리계 명령
    • 초당 몇 차례의 SELECT / INSERT / UPDATE/ DELETE를 실행하고 있는가?
    • 초당 몇 개의 레코드를 읽고 있는가?
    • 초당 몇 차례의 무거운 쿼리가 실행되고 있는가?

SQL의 장점과 단점

  • 기능면
    • Stored Procedure를 이용하면 다소 복잡한 로직 구현이 가능함
    • 그리고 수십개의 SQL를 한번에 호출할 수 있기에 네트워크 액세스 빈도를 크게 줄일 수 있음