Skills/Database

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에 접속하려면 %를..

프리미99
'Skills/Database' 카테고리의 글 목록