분류 전체보기 420

Spatial Query Index 최적화(공간 쿼리 최적화)

🤔 문제의식개발을 하다 보니 좌표를 사용하는 경우가 꽤 있었다.필자의 경우 대다수의 상황을 프론트가 지도를 연동하는 과정 속에 대부분 String으로 좌표값만 저장 후 전달해 주었던 것 같다.새로운 프로젝트에서 사용자 위치 기반으로 가게를 거리별로 페이징 해주어야하는 부분이 있었고, 직접 처리해보고자 하였다.String으로 처리하고자 하니 인덱싱이 되지 않는 문제가 있었다. 사용자의 위치를 기반으로 일정한 거리를 계산하고자 하니 풀 테이블 스캔이 필연적으로 발생하는 문제였다.→ 프로젝트 규모상 위도 경도를 일정 범위로 제한한 뒤에 다시 원형으로 거리를 측정하는 방식을 도입하는 것만으로도 충분했지만 더 좋은 정보가 없나 찾아보았고 Spatial Query라는 것을 알게 되었다.💡Spatial Query..

DB/MySQL 2025.08.31

[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기(SQL)

문제http://school.programmers.co.kr/learn/courses/30/lessons/131536풀이(16분)SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING COUNT(*) >= 2ORDER BY USER_ID ASC, PRODUCT_ID DESC;문제 풀이 전략 SELECT를 할 때, USER_ID와 PRODUCT_ID가 쓰인다.또한, 조건을 사용하는데 있어서도 동시에 쓰인다. 그렇기에 GROUP BY라는 절로 묶어준다.이후 HAVING절은 GROUP절의 WHERE절같은 느낌으로 사용되는 것이다.

[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/131120풀이(8분)SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH FROM MEMBER_PROFILE MWHERE M.DATE_OF_BIRTH LIKE "%-03-%" AND M.GENDER = "W" AND M.TLNO IS NOT NULLORDER BY M.MEMBER_ID ASC;문제 풀이 전략 1. WHERE절에서 IS NOT NULL을 이용해 NULL인자를 제거할 수 있다.2. DATE_FORMAT를 통해 내가 원하는 날짜 출력을 지정할 수 있다. 자주 쓰이는 포맷 ..