db 3

SQL 쿼리 튜닝 SQL 실행 순서와 인덱스 전략에 대해서

SQL 실행순서 1 FROM (+ JOIN) : 대상 테이블을 참조하고 조인을 통해 전체 데이터 셋을 구성합니다. 2 WHERE : 조건에 맞지 않는 행을 먼저 제거합니다. ★★ (인덱스 활용 구간)★★ => 해당 부분은 다음에 포스팅 하도록 함3 GROUP BY: 남은 행들을 특정 컬럼 기준으로 그룹화합니다. 4 HAVING: 그룹화된 결과에 필터링 조건을 적용합니다. 5 SELECT: 어떤 컬럼을 출력할지 선택하고 연산(COUNT, SUM 등)을 수행합니다. 6 ORDER BY: 최종 결과물을 정렬합니다. 7 LIMIT / OFFSET: 출력할 행의 개수를 제한합니다. 예시 SELECT name, COUNT(*) -- (5) 보여줄 컬럼 선택 FR..

IT/RDB&SQL 2026.01.08

SQL Injection (SQLi) 에 대한 예방

결론 : PreparedStatement 객체를 이용해서 SQL과 파라미터를 분리하여 사용자의 입력값을 데이터로만 취급함으로써 SQL Injection 공격을 예방할 수 있습니다. SQL Injection : 사용자의 입력값이 SQL 명령어로 해석되게 하여 데이터베이스를 무단 조작하는 공격 기법 /* JAVA JDBC 예시 */// Statment 객체 사용 (취약)String sql = "SELECT * FROM users WHERE id = '" + id + "'";Statement stmt = conn.createStatement();stmt.executeQuery(sql);// PreparedStatment 객체 사용 (90% 예방)String sql = "SELECT * FROM users WH..

IT/RDB&SQL 2025.12.19