슬로우 쿼리 원인 분석 및 해결 데이터베이스의 슬로우 쿼리를 유발하는 요소는 많다. 형사가 단서를 잡아 하나씩 수사망을 좁혀가듯이 원인을 분석해가야 한다. 가장 먼저 선행되어야할, 그리고 가장 많이 사용해야 하는 것은 EXPLAIN(실행 계획) 또는 EXPLAIN FORMAT=JSON(전자보다 제공하는 정보가 더 많음) 문을 사용하여 해당 슬로우 쿼리의 인덱스 사용 정보를 확인하는 것이다. 아래와 같이 모든 쿼리에 사용이 가능하다. EXPLAIN FORMAT=JSON SELECT * FROM USER 잘못된 인덱스 설계는 풀 테이블 스캔을 유발하여 슬로우 쿼리의 주범이 된다. 앞서 언급한 EXPLAIN 문으로 분석해보면 인덱스 사용 여부를 자세하게 확인할 수 있다. 쿼리에 명시된 WHERE, JOIN, ..
레플리케이션 하나의 MySQL/MariaDB 서버가 존재한다고 생각해보자. 만약 이 서버의 동기화된 복제본이 n개 추가되고 애플리케이션으로 부터의 모든 읽기(Read) 요청을 이 복제본이 대신 받는다고 생각해보자. 읽기에 대한 부담이 여러 대의 복제본으로 분산되면서 원본 서버의 쓰기 성능까지 덩달아 안정적으로 작동하게 될 것이다. 또한, 예기치 못한 장애로 원본 서버가 유실되어도 복제본에 의해 데이터는 보존된다. 이러한 데이터베이스 구성 방법을 마스터-슬레이브 레플리케이션(Master-Slave Replication)이라고 부른다. MHA 앞서 언급한 Single Master, Multi Slave 구성을 통해 부하 분산 효과와 데이터의 유실 방지는 가능해졌지만 애플리케이션 입장에서는 마스터 서버에 장애..
INT(11) UNSIGNED INT(11) UNSIGNED은 1부터 순차적으로 증가하는 PK 값을 저장할 때 사용한다. 최대값은 4,294,967,295(약 42억개)이며 4바이트 공간을 차지한다.아래와 같이 AUTO_INCREMENT 구문과 함께 사용할 수 있다. 이러한 자연키를 사용하지 않고 자동으로 증가하는 인공키를 Surrogate Key라고 부르는데 여러가지 이점으로 인해 최근에는 모든 테이블에 사용하는 것을 권장하는 추세이다. [관련 링크] CREATE TABLE some_table ( id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, ... ); BIGINT UNSIGNED BIGINT UNSIGNED은 앞서 언급한 INT(11) UNSI..
사전지식 MariaDB 10.x, CentOS 6에 설치하기 데이터베이스 생성 보안을 위해 MySQL(MariaDB)의 root 계정 접근은 로컬 서버에서만 허용해야 한다. 애플리케이션에서 사용할 데이터베이스를 생성하려면 로컬 서버에서 해당 데이터베이스를 생성하고 애플리케이션 서버에서만 접근할 수 있도록 접근 권한을 부여해야 한다. # 데이터베이스 로컬 서버 접속 후 root 계정으로 클라이언트 실행 $ sudo mysql -u root -p # somedb 데이터베이스 생성 mysql> CREATE DATABASE somedb; # someuser/somepassword 계정에 somedb 데이터베이스의 로컬 접속을 허용 # someuser 계정이 존재하지 않을 경우 자동 생성 mysql> GRANT ..
- Total
- Today
- Yesterday
- Spring Boot
- kotlin
- MySQL
- Eclipse
- Kendo UI
- Kendo UI Web Grid
- JHipster
- 태그를 입력해 주세요.
- 자전거
- jpa
- Tomcat
- 로드바이크
- chrome
- DynamoDB
- Spring MVC 3
- node.js
- jsp
- jstl
- 알뜰폰
- spring
- graylog
- JavaScript
- 구동계
- CentOS
- Docker
- bootstrap
- 로드 바이크
- maven
- 평속
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |