320x100 728x90 분류 전체보기152 MySQL의 Full-text index를 이용하여 검색 API 성능 개선하기 사내에서 테스트 커뮤니티 매체를 만들고 있는데, 테스트성으로 만든 매체다보니, 커뮤니티의 게시글을 검색하는 API에서 Like '%검색어%' 절로 간단하게 작성해 놨다. 그러다 보니 트래픽이 분당 500~700 사이었는데도 불구하고 RDS의 cpu가 항상 95~98%로 상당히 많은 부하가 있었다. 어찌 보면 당연한 결과다. like절은 인덱스를 타지 않고 기본적으로 풀스캔으로 동작을 하게 된다. 데이터는 약 16만 건의 row가 있었다. EXPLAIN SELECT * FROM contents c WHERE title LIKE '%검색어%'; explain으로 쿼리 전략을 살펴보면 모든 row를 스캔하고 그 대상은 약 13만 건의 데이터임을 알 수 있다. 사용자가 실제로 분당 30~40건의 검색 API를 .. 2023. 1. 16. AWS Lambda 사용시 주의점 (동시성) AWS Lambda로 간단한 서버리스 API를 구성하다가 오늘 문제점을 만났다. What is AWS Lambda? - AWS Lambda What is AWS Lambda? AWS Lambda is a compute service that lets you run code without provisioning or managing servers. Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, includ docs.aws.amazon.com 문제의 API는 간단한 캐싱 데이터를 가져가는 API인데, 갑자기 Respon.. 2022. 12. 22. AWS LightSail 소개 및 적용기 회사에서 비용절감 작업의 일환으로 EC2의 비용을 줄일 방법을 찾던 중 AWS LightSail을 찾게 되었다. LightSail은 AWS에서 지원이 종료되거나 오래된 인스턴스들을 지원 종료하기 전에 가볍게 시작할 수 있는 용도로 만들어진 듯하다. 자세한 내용은 여기서 참고할 수 있다. EC2의 대체재로 찾긴 했지만 LightSail이라는 서비스의 범주안에 RDS, CDN, DNS 등등 AWS에서 사용할 수 있는 서비스는 모두 있었고, VPC를 피어링 해서 기존 AWS 서비스와 함께 사용할 수 있다. 이 글의 요점은 EC2와 같은 가상 서버이기 때문에 LightSail = EC2라고 봐주시면 글을 읽는데 도움이 될 것입니다. LightSail의 간단한 설명은 뒤로 하고, 우리 팀이 이를 선택한 이유는 다.. 2022. 11. 30. RDS,MySQL] slow query 알림 봇 만들기 신규 프로젝트를 진행하면서 백엔드와 DB설계를 맡아서 진행했다. 프로젝트 특성상 많은 DB Select가 일어나고 조인 관계가 복잡해지면서 쿼리 병목현상이 일어나는 지점이 생기면 알림을 쏴서 해결하려 했다. 물론 백엔드 코드를 작성하기 이전에 explain으로 지켜보면서 인덱싱을 적절하게 거는 것도 좋지만, 갈수록 콘텐츠가 많아질 것을 감안하여 슬로 쿼리에 대한 알림 봇을 만들 생각이 났다. 인프런 채용공고에서 봤다.. 사실... 우선 aws콘솔에서 rds 탭에 들어간 후, 알림 봇을 지정할 인스턴스로 들어간다. 인스턴스 -> 구성 -> 제일 아래에 파라미터 그룹을 선택한다. 검색창에 slow라고 검색 후, slow_query_log를 1로 바꿔준다. 우측 상단에 파라미터 편집이 있다. 그다음 long를.. 2022. 11. 10. 이전 1 2 3 4 5 6 ··· 38 다음 300x250 320x100