슬로우 쿼리 원인 분석 및 해결 데이터베이스의 슬로우 쿼리를 유발하는 요소는 많다. 형사가 단서를 잡아 하나씩 수사망을 좁혀가듯이 원인을 분석해가야 한다. 가장 먼저 선행되어야할, 그리고 가장 많이 사용해야 하는 것은 EXPLAIN(실행 계획) 또는 EXPLAIN FORMAT=JSON(전자보다 제공하는 정보가 더 많음) 문을 사용하여 해당 슬로우 쿼리의 인덱스 사용 정보를 확인하는 것이다. 아래와 같이 모든 쿼리에 사용이 가능하다. EXPLAIN ..
레플리케이션 하나의 MySQL/MariaDB 서버가 존재한다고 생각해보자. 만약 이 서버의 동기화된 복제본이 n개 추가되고 애플리케이션으로 부터의 모든 읽기(Read) 요청을 이 복제본이 대신 받는다고 생각해보자. 읽기에 대한 부담이 여러 대의 복제본으로 분산되면서 원본 서버의 쓰기 성능까지 덩달아 안정적으로 작동하게 될 것이다. 또한, 예기치 못한 장애로 원본 서버가 유실되어도 복제본에 의해 데이터는 보존된다. 이러한 데이터베이스 구성 방법을 마..
INT(11) UNSIGNED INT(11) UNSIGNED은 1부터 순차적으로 증가하는 PK 값을 저장할 때 사용한다. 최대값은 4,294,967,295(약 42억개)이며 4바이트 공간을 차지한다.아래와 같이 AUTO_INCREMENT 구문과 함께 사용할 수 있다. 이러한 자연키를 사용하지 않고 자동으로 증가하는 인공키를 Surrogate Key라고 부르는데 여러가지 이점으로 인해 최근에는 모든 테이블에 사용하는 것을 권장하는 추세이다. [관련 ..
사전지식 MariaDB 10.x, CentOS 6에 설치하기 데이터베이스 생성 보안을 위해 MySQL(MariaDB)의 root 계정 접근은 로컬 서버에서만 허용해야 한다. 애플리케이션에서 사용할 데이터베이스를 생성하려면 로컬 서버에서 해당 데이터베이스를 생성하고 애플리케이션 서버에서만 접근할 수 있도록 접근 권한을 부여해야 한다. # 데이터베이스 로컬 서버 접속 후 root 계정으로 클라이언트 실행 $ mysql -u root -p # som..
개요 MariaDB는 MySQL 5.5(Oracle이 소유하기 전의 마지막 버전)의 포크 버전이다. 포크 버전이기 때문에 초기 설치 과정을 제외한 모든 환경이 MySQL과 유사하다.MariaDB는 앞서 설명한 이유로 오라클이 본격적으로 기능 개선을 시작한 MySQL 5.6, 5.7과는 호환되지 않는다. MySQL 5.6부터 추가된 고가용성 관련 기능 때문에 MariaDB를 대용량 데이터베이스로 권장하지 않기도 한다. [관련 링크1] [관련 링크2]..
HeidiSQL (무료) HeidiSQL은 MySQL, MariaDB를 모두 지원하는 무료 원격 클라이언트 툴이다.화면 구성 및 조작성이 가볍고 직관적이며 대용량 데이터 내려받기 및 밀어넣기 기능이 제공된다.ER 다이어그램 생성 기능은 제공되지 않는다. 평소에는 HeidiSQL을 주력으로 사용하고 다이어그램 추출 기능만 DBeaver를 사용하면 좋지 않을까 판단된다. DBeaver (무료) DBeaver 역시 MySQL, MariaDB를 모두 지..
개요 CentOS 6에서 MySQL 5.7.x를 설치하는 방법을 설명하고자 한다. MySQL 5.7.x 설치 CentOS 6는 기본적으로 yum 저장소에서 MySQL 5.5.x만 설치가 가능하다. 아래와 같이 별도의 yum 저장소를 설치해야 한다. # MySQL 5.7.x을 설치하기 위한 yum 저장소 설치 $ rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el5-8.noarch.rp..
MySQL 보안 정책 MySQL은 보안 관점에서 계정 단위로 특정 도메인 또는 IP 주소에게만 원격 접속을 허용하게 할 수 있다. 또한, 같은 계정이라도 원격지 별로 패스워드 또한 다르게 부여할 수 있다. MySQL을 처음 설치하면 로컬에서만 접속이 가능하다. 아래와 같이 information_schema.user_privilege 테이블에서 원격 접속 권한을 확인할 수 있다. mysql> SELECT * FROM information_sc..
개요 MySQL을 처음 설치하면 root 계정의 비밀번호가 존재하지 않는다. 따라서 최초 접속시에는 root 계정의 비밀번호를 설정해야 한다. 아래는 최초 비밀번호 설정 또는 비밀번호를 까먹었을 경우 재설정하는 방법 모두 적용된다. # 실행 중인 MySQL 데몬 종료 $ service mysqld stop # MySQL 초기화, 비밀번호만 변경할 경우 생략, 초기 설치시 진행 $ mysqld_safe --initalize 170506 03:07:0..
먼저 읽어볼만한 글 Windows 운영체제에서 MySQL 5.7.x 설치하기 CREATE TABLE 예시 MySQL 테이블 생성의 예는 아래와 같다. 아래는 회원 테이블 생성의 간단한 예이다. CREATE TABLE user ( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, email VARCHAR(255) NOT NULL UNIQUE, password_encrypted VARCHAR(255) NOT ..
- Total
- 1,547,688
- Today
- 869
- Yesterday
- 1,349
- jsp
- MySQL
- 평속
- Tomcat
- Spring MVC 3
- jQuery
- Spring Boot
- It
- BLToolkit
- PC앱
- node.js
- java
- jstl
- Eclipse
- 자전거
- Kendo UI
- 태그를 입력해 주세요.
- timestamp
- bootstrap
- 로드 바이크
- chrome
- JAX-RS
- CSS
- JavaScript
- date
- 로드바이크
- 구동계
- CentOS
- spring
- Kendo UI Web Grid