서비스를 배포하기 전에 빠른 처리속도를 위해 SQL에서 where문에 속한 테이블과 컬럼에 Index 처리해야한다.
먼저 select, update, delete를 모두 검색해서 where가 포함된 query를 찾는다.
검색기능을 사용하여 API를 작성한 파일이 들어있는 폴더에서 select 부터 delete까지 순서대로 검색하여 확인한다.
select 를 사용한 쿼리에서 where를 사용한 테이블을 찾고 그 컬럼에 인덱스 처리한다.
query = '''select p.*, u.email, u.name, count(l.postingId) as likes
from posting p
join user u
on p.userId = u.id
left join likes l
on p.id = l.postingId
where p.userId = %s
group by p.id
limit '''+offset+''','''+limit+''';'''
# posting 테이블의 userId를 인덱스 처리해야 한다.
foreign key를 설정해서 인덱스 처리했다.
where에 like가 포함된 query를 찾았다.
query = '''select *
from tag_name tn
join tag t
on tn.id = t.tagId
join posting p
on p.id = t.postingId
where tn.name like '%'''+keyword+'''%'
group by t.postingId
order by p.createdAt desc
limit '''+offset+''', '''+limit+''';'''
where 절에 like가 있으면 FULLTEXT로 처리한다.
delete에서 where를 사용한 query를 찾았다.
query = '''delete from tag
where postingId = %s;'''
tagId와 postingId를 묶어서 인덱스 설정한다.
#유니크는 자동으로 이미 인덱스 처리가 되기 때문에 따로 설정할 필요가 없다.
'백엔드 > API' 카테고리의 다른 글
[API] 포스트맨으로 API명세서 만들기 (0) | 2022.08.31 |
---|---|
[API] Open API를 XML 형식으로 불러와서 JSON으로 변환 (API 결과값에 따라 형태가 달라질 때) (0) | 2022.08.25 |
[API] 네이버 API 이용하기 (0) | 2022.06.27 |
[API] Rekognition (0) | 2022.06.24 |
[API] S3로 파일 업로드하는 API (0) | 2022.06.24 |
댓글