Infra & Tools
-
MySql 조회 성능 최적화를 위한 Index 의 이해(2)Infra & Tools/MYSQL 2023. 9. 14. 23:04
이전 글에서 인덱스의 특징 설명을 했으니,, 실습을 해봤다. -> 다음 문장이 실제인지 알아보자. 1000 만건의 데이터의 통계를 위해 4000 만 건을 읽는 작업에서는(전체 테이블 레코드의 20 %) 인덱스를 이용하지 않는게 올바른 판단일 수가 있다. 다음과 같이 인덱스를 명시하지 않았으면 인덱스가 있다면 옵티마이저가 알아서 인덱스를 설정한다. (그렇다고 항상 최적으로 인덱스 설정하는것도 아님) 인덱스를 만들기 전에 , 인덱스가 없는 경우를 먼저 측정을 하고, 인덱스를 생성한 후 비교를 해주자. select created_time ,updated_time ,count(feed_id) as count from feed where member_id = 4 and created_time between '20..
-
DB 서버에서 한번에 받아들일 수 있는 최대 쿼리 크기?Infra & Tools/MYSQL 2023. 8. 24. 15:10
my sql 의 서버에서 한번에 받을 수 있는 쿼리의 크기는 무제한이 아니다. 한번의 받을 수 있는 쿼리 크기를 확인 하는 명령어는 다음과 같다. show variables where Variable_name = 'max_allowed_packet' 내 로컬 컴퓨터의 MYSQL 의 max_allowed_packet 의 값은 67MB 이다. cf 1Byte * 10^3 = 1KB 1KB * 10^3 = 1MB MySQL 5.7 ,8.0 공식 문서에 따르면 기본 사이즈의 크기는 최대 약 4MB,67MB 이며 , 패킷의 메시지 버퍼는 net_buffer_length 의 바이트 크기 만큼 초기화 되어서 사용이 된다. 각각의 클라이언트 스레드는 연결 버퍼와 결과 버퍼에 연관이 되어있으며 , 두개의 버퍼 크기 모두..
-
MySql 조회 성능 최적화를 위한 Index 의 이해(1)Infra & Tools/MYSQL 2023. 8. 16. 19:11
MySql 과 SpringBoot 에서 데이터 조회 성능을 최적화하기 위한 방법들은 다양하다. 다음 두가지의 방식을 생각해 볼 수 있다. 1. 메모리의 캐쉬 hit 을 올린다 CPU 내부의 L1~L3 캐시와 같은 하드웨어 캐시의 히트율을 높이는 방식으로 프로그래밍을 한다. - SPring 에서 @Cacheable ,@CacheEvict 등을 사용한 캐싱 로직을 구현 하는 것 도 있다. - 추가로 Mysql 의 쿼리 캐시의 경우 5.6 은 deprecate 이며, 8.0 에서는 제거 되었다. 2. 인덱싱 - 적절한 인덱스를 DB 테이블에 설정하여 조회에 자주 사용되는 컬럼 또는 JOIN 연산에 사용되는 칼럼에 인덱스를 설정한다. 데이터의 조회 성능 최적화 중 데이터 베이스와 관련된 하나의 방법에는 디스크 ..
-
AWS RDS 무료 범위 정리Infra & Tools/MYSQL 2023. 6. 17. 19:03
Amazon RDS 프리 티어는 12개월 동안 사용할 수 있습니다. 매월 프리 티어를 통해 아래 나열된 Amazon RDS 리소스를 무료로 사용할 수 있습니다. 단일 AZ db.t2.micro, db.t3.micro 또는 db.t4g.micro 인스턴스에서 Amazon RDS를 750시간 사용. 20GB의 범용 스토리지(SSD). 20GB의 자동 백업 스토리지 및 사용자가 시작한 모든 DB 스냅샷. 1. 사용하지 않는 rds 는 종료하자... 2. 20GB의 범용 스토리지(SSD) -> 30 GB 의 ssd 를 신청한 필자는 멍청하게 돈을 지불했다.. 필요한 만큼 잘 계산하자. + 30GB 에서 20GB 로 줄여주는 마법 같은 기능은 없다. 3. 단일 AZ , Multi - AZ 체크를 해제 하자. 4...
-
Mysql 오류(RDS 접근, 엑세스 오류 등)Infra & Tools/MYSQL 2023. 5. 10. 23:46
ex 1) Access denied for user '' @ ''(using password: YES) ex 2) AWS RDS mysql workbench 접속 에러 등 mysql 을 사용하면서 만났던 오류들을 한번 정리를 하고자 한다. 다양한 상황과 버전별 약간의 차이가 있으니 현제 os 버전과 mysql 의 버전을 확인해주자. 1. 로컬에서 사용해서 로컬에서 접근 오류가 나는 경우 2. aws ec2 에 우분투 18 을 설치하고 mysql 을 설치 하는경우 3. RDS 에서 mysql workbench 접속이 안되는 경우 등,,, 4. 한글 오류등 ----- 1. 비밀 번호 설정을 확인하자. 우분투 18 버전은 현제 mysql 버전 5.6 을 설치 가능하며 버전 8은 설치가 불가하다. 중요한 점은 ..
-
Nginx 프록시 구축 ( AWS ,Cerbot)Infra & Tools 2022. 12. 7. 01:46
하나의 ec2 가상 컴퓨터에 dev server, release server , web server 를 구현 하는 법이다. 필수 숙지 Nginx 관련 커맨드 # Nginx 시작 및 systemctl에 등록 sudo systemctl start nginx #Nginx 중지 sudo systemctl stop nginx # Nginx 재시작 sudo systemctl restart nginx # Nginx 다시 로드 sudo systemctl reload nginx 부팅 시 자동으로 시작되는 것을 비활성화할 수 있으며 비활성화된 것을 다시 활성화할 수 있습니다. # 부팅 시 Nginx 자동 시작 해제 sudo systemctl disable nginx # 자동 재시작으로 다시 활성화 경우 sudo syste..
-
AWS Ec2 에 Private Repository pull & buildInfra & Tools/GIT 2022. 10. 22. 17:11
터미널창을 통해 Aws EC2에 접속 후 진행 합니다. 코드는 node.js 기반의 Next.js 로 작성했다고 가정합니다. 현재 폴더 위치 home or 기본인 것 확인 $ls -al mkdir 로 pull 받을 위치를 만들고 GitHub 에 올린 폴더(실제 구동 서버코드)에서 git pull 로 github의 최신 코드를 받아옴. Private Repository or Organization 이면 4번을 진행해줍니다. $ git remote set-url origin https://accessCode붙여넣기@github.com/[본인이름 혹은 Organization이름]/[파일 이름].git ‘yarn build’ 를 통해서 빌드 파일 생성 ‘pm2 list’ 를 통해서 현재 돌아가고 있는 서버 확인..
-
git ignore 적용Infra & Tools/GIT 2022. 9. 25. 19:54
매번 찾는게 귀찮아서,, 적어 본디. 깃 이그노어 적용 ㄱㄱ 정리 : git rm -r --cached . git add . git commit -m "Apply .gitignore" ----------- git 은 파일을 track 을 한다. git ignore 를 수정 하거나 추가를 할시 재 적용이 필요하며 다음 단계를 따르면 된다 1. - git이 있는 최상위 폴더로 이동 2. git rm -r --cached . 만약 : fatal: No pathspec was given. Which files should I remove? 이라 뜨면git ignore 를 local 에 방금 추가한거라 관리가 안된다 라는 뜻으로 걱정없이 3번을 해준다. 3. git add . git status 4. git co..