Skills

Skills/Database

MYSQL 쿼리 실행 속도 분석 및 개선하기

테이블마다 인덱싱을 잘 걸어주면 속도가 빠름~ 빠름~ 쿼리 속도가 늦어지는 이유는 뭘까? 컬럼수가 많거나 조인을 많이 하거나(테이블이 추가될 때마다 컬럼수가 +가 아니라 X로 적용됨) view를 사용하거나(테이블의 집합. 이미 많다..) 회사에서는 사용자가 많고 오래될 수록 테이블에 데이터가 쌓일 수 밖에 없다. 게다가 테이블이 엄청 많고 필요한 정보가 다 다른 테이블에 있어 조인이 필요하다면? 데이터가 적을 때는 primary key만으로도 인덱싱이 가능해서 문제가 되지 않겠지만, 데이터가 많아지게 되면 primary key만으로 인덱싱이 안된다. 또한 조회하는 테이블의 where 조건에 인덱스 값도 없고 primary key 값조차 존재하지 않는 경우 full scan이 발생하게 되므로 조회 속도에 ..

Skills/Database

[MAC] homebrew로 Mysql 설치시 발생하는 오류 해결 방법

brew install mysql 명령어로 설치시 발생하는 오류 해결법 1. mysql -uroot -p 명령어 입력시 Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 발생 오류 -> brew uninstall mysql -> brew cleanup -> sudo rm -r /usr/local/var/mysql -> brew install mysql => mysql 완전 삭제 후 재설치 2. brew install mysql로 설치시 [ERROR] unknown variable 'mysqlx-bind-address=127.0.0.1' 오류 -> /usr/local/etc/my.cnf 파일의 m..

Skills/Database

MySQL DB계정 생성 및 스키마 생성과 권한 추가하기

linux cmd에서 DB 계정 생성, 스키마 생성, 권한 추가 방법 mysql 테이블에 대해 CRUD를 하기 위해서는 1) 계정을 생성하고, 2) 스키마(database)를 생성한 후 3) 계정에 대해 스키마에 대한 권한을 추가해야 합니다. 이와 관련된 내용을 정리했습니다. 1. 계정 생성 1) root 계정으로 접속 후 use mysql; 명령으로 mysql 스키마에 접속합니다. mysql -u root -p MariaDB [(none)]> use mysql; Database changed 2) create user ~ 로 계정을 생성합니다. 계정 정보 입력시 host로 표시한 부분의 입력에 따라 외부에서 접근 가능 여부가 달라집니다. 서버가 아닌 외부 DB툴에서 해당 계정으로 DB에 접속하려면 %를..

Skills

Backend roadmap

출처 : https://github.com/devJang/developer-roadmap

Skills/Java & Spring

스프링 부트 테스트

이 글은 '처음 배우는 스프링 부트2' (김영재 저)' 책 내용을 정리한 글입니다. 스프링 부트에서는 각종 테스트를 위한 어노테이션 기반 기능을 제공 @SpringBootTest 통합 테스트를 제공하는 기본적인 스프링 부트 테스트 어노테이션 애플리케이션이 실행될 때의 설정을 임의로 바꾸어 테스트 진행 가능하며, 여러 단위 테스트를 하나의 통합된 테스트로 수행할 때 적합 장점 : 실제 구동되는 애플리케이션과 똑같이 애플리케이션 컨텍스트를 로드하여 테스트하므로 하고 싶은 테스트를 모두 수행 가능 단점 : 애플리케이션에 설정된 빈을 모두 로드하기 때문에 규모가 클수록 느려짐 @SpringBootTest 어노테이션을 사용하려면 @RunWith(SpringRunner.class)를 붙여서 사용해야 함 @RunWi..

프리미99
'Skills' 카테고리의 글 목록 (2 Page)