Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
20180609 sql presentation
1. 나라면 데이터를 어떻게 처리할까?
- 옵티마이저 입장에서 SQL 처리하는 방식으로……
• 자바카페 & 저의 소개
• 옵티마이저란?
• 그룹함수 사용
• 인덱스 + 컬럼가공
• 마치며..
정재욱
2. 자바카페와 발표자 소개
• 스터디를 위해 모인 사람들!!!
- offline으로 만나서 스터디를...
- 월마다 정기회의도 하고~
- onoffmix or facebook을 통해 공지
- 공식/비공식 진행
- java에서 다양한 관심 분야로~
저의 2012년 첫 스터디 모임 그룹
2012년 3월 10일 첫 스터디 모임 OT 참석
4. 그룹함수 사용에서..
(1)
SELECT
B.색이름
, COUNT(*) AS 건수
FROM
색깔상자 A
, 색코드표 B
WHERE B.색ID = A.색ID
GROUP BY
B.색이름
(2)
SELECT
B.색이름
, A.건수
FROM
( SELECT
색ID
, COUNT(*) AS 건수
FROM
색깔상자
GROUP BY
색ID
) A
, 색코드표 B
WHERE B.색ID = A.색ID
(3)
SELECT
(SELECT 색이름 FROM 색코드표
WHERE 색ID = A.색ID) AS 색이름
, COUNT(*) AS 건수
FROM
색깔상자 A
GROUP BY
색ID
<< 색깔상자에서 색 칠해야 하는 띠들이 얼마나 있는지 확인해야 하는 쿼리 >>
8. 인덱스는..
판매날짜 상품ID
20180601 P010492
20180601 P020421
20180602 P011123
20180602 P011234
20180602 P015236
20180603 P382733
…. ….
SELECT
*
FROM
판매내역
WHERE 판매날짜 = '20180609'
AND 상품ID LIKE 'P091%'
SELECT
*
FROM
판매내역
WHERE 판매날짜 BETWEEN '20180601' AND '20180609'
AND 상품ID = 'P09131'
상품ID 판매날짜
P010492 20180601
P011123 20180602
P011234 20180602
P015236 20180602
P016784 20180607
P020421 20180601
…. ….
SELECT
*
FROM
판매내역
WHERE 판매날짜 IN ( '20180601'
, '20180602'
, '20180603'
, '20180604'
, '20180605'
, '20180606'
, '20180607'
, '20180608'
, '20180609' )
AND 상품ID = 'P09131'
9. WHERE 컬럼 사용에 주의할 점..
SELECT
*
FROM
판매내역
WHERE TO_CHAR(판매날짜, 'YYYYMMDD') =
'20180609'
AND 상품ID LIKE 'P091%'
SELECT
*
FROM
판매내역
WHERE 판매날짜 = '20180609'
AND SUBSTR(상품ID, 1, 4) = 'P091'
SELECT
*
FROM
판매내역
WHERE 판매날짜 = TO_DATE('20180609' ,
'YYYYMMDD')
AND 상품ID LIKE 'P091%'
SELECT
*
FROM
판매내역
WHERE 판매날짜 = '20180609'
AND 상품ID LIKE 'P091%'
(1) CHARACTER < NUMBER (2) CHARACTER < DATE
'1111' TO_NUMBER('1111') '20180609' TO_DATE('20180609', 'YYYYMMDD')
10. 출처
• 2012년 사진첩(발표자)
• 구글에 이미지 명칭 검색(도서관, 움막집, 초소 등)
알아두면 도움이 될 용어들
• Scalar Sub-query, In-line view Sub-query, Sub-query
• 부분범위 vs. 전체범위 처리
• Nested loop, Hash, (Sort) Merge
• Random I/O