LOCK 이란?트랜잭션 처리의 순서를 보장하기 위한 방법DB가 처리하는 가장 작은 단위트랜잭션이 완벽하게 처리될 때 까지 다른 트랜잭션 개입을 막아주는 방식LOCK 의 종류Shared Lock : S-LOCK 이라고 보통 얘기한다.Row-Level Lock 중 하나이다.데이터 Read 에 대한 LockS-LOCK을 사용하는 쿼리 끼리는 같은 row에 접근이 가능하다.Exclusive Lock : X-LOCK 이라고 한다.Row-Level Lock 중 하나데이터 Write 에 대한 Lock트랜잭션 완료 될때 까지 유지되며 Lock이 해제 될 때 까지 다른 트랜잭션은 해당 리소스에 접근 불가능SELECT...FOR UPDATE, INSERT등 수정 쿼리를 날릴 때 ROW 에 걸리는 LOCKS-LOCK, X-..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwYtJf/btrZD2wVdIj/hty6SLlzKsBzQTeh5Ym8P0/img.png)
Index 란? 내가 찾고 싶은 데이터를 찾을 때, 모든 레코드에서 찾는 것 보다 특정한 범위 내 한정해서 데이터를 찾는게 빠르다. 즉, 우리가 책에다 포스트잇을 붙여 넣거나 목차를 달아두어서 찾고자 하는 내용이 있으면 해당 내용이 속한 포스트잇이나 목차를 바로 찾아서 둘러 보는 것과 같다. DB에서 레인지 스캔을 하려면 책처럼 색인(목차)이 필요하다. 이러한 색인, 포스트잇을 DB에서 인덱스(Index)라고 부른다. 예를 들어 사용자가 100만명이 있는 테이블에서 userid 가 akdu39 라는 값을 찾고자 한다면, 다음 이 쿼리를 사용해야 한다. select userid from user_table where userid = "akdu39" 만약 인덱스가 없다면 100만개의 데이터를 모두 찾아보고 ..
What is Flyway? 간단히 말해서 DB 마이그레이션 오픈 소스 툴 입니다. Database 의 DDL 이력을 쌓아서 관리하는 툴 입니다. 이를 통해 DB 형상관리 및 마이그레이션을 할 수 있다. svn 에서는 위험하지만 git에서는 시도 해 볼 만 하다(개인적인 생각) 장점 우리는 현재 dev fqa live 형상 등 모두 DB에 접근하여 DDL을 수행하여야 한다. 즉 실수가 발생할 수 도 있다. 소스코드 상에서 관리가 가능하다. 도입하기 쉽다. 단점 롤백이 불가능하다. 성공한 sql 파일에 대해서 변경을 권하지않는다(hash 값이 변하여 이후 마이그레이션에 문제가 생길 수 있다) Flyway 동작 방식 마이그레이션은 버전 숫자 기준으로 순서대로 동작한다. flyway 적용은 applicatio..
Spatial Query Index 최적화 이전 글에서 보면 Spatial Query와 Mysql 에서 제공하는 함수를 이용하여 간단한 쿼리에 대한 이해와 실습을 하였다. 이번 글에서는 Spatail Query 인덱스를 태워서 성능 개선을 해보겠다. 먼저 실습하기 전에 SRID 라는 것에 대해 미리 알고 가보자 SRID(Spatial Reference Identifier) 공간 인스턴스에는 SRID(spatial reference identifier)가 있습니다. SRID는 평면 지구 매핑 또는 둥근 지구 매핑에 사용되는 특정 타원면을 기준으로 하는 공간 참조 시스템에 해당합니다. 공간 열은 SRID가 다른 개체를 포함할 수 있습니다. 그러나 데이터에 대한 SQL Server 공간 데이터 메서드를 사용하..
이전 글에서 필자는 간단한 Spatial Query를 이용해서 지도 관련된 실습을 해 보았다. 이러한 공간데이터 들을 DB에서 다루기 위해선 우선적으로 공간 데이터에 대한 인덱스를 적용할 수 있느냐가 가장 중요할 것이다. 필자는 이번 글 에서 공간 인덱스 관련된 R-Tree에 대해 간단하게 기술 해 볼려고 한다. R-Tree 인덱스 R-Tree 인덱스는 2차원 데이터를 저장하는 인덱스이다. R-Tree 인덱스를 구성하는 컬럼의 값은 2차원 공간 개념 값으로 MySQL 공간 인덱스에 사용하게 된다. 공간 인덱스는 위치 기반의 서비스를 구현할 때 주로 사용되며 MySQL의 공간 확장을 이용해 간단하게 구현할 수 있다. MySQL의 공간 확장에는 크게 세 가지 기능이 포함 되어 있다. 공간 데이터를 저장할 수..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kF1rt/btrXWwG3F3E/IZkcZXi3sEP39V7zoOKIjK/img.png)
Spatial Query(공간 정보 쿼리) Mysql 에서 좌표(Point), 다각형(Polygon)등 같은 공간 기하 데이터를 다루는 쿼리를 지원한다. 필자는 공간 관련된 프로토타입을 만들어야해서 어플리케이션에서 처리하는게 아닌 DB의 공간 관련된 쿼리를 사용해보고 기술해볼려고 한다. 공간 데이터 타입 먼저 Mysql 에서 지원하는 공간 데이터 타입에 대해 살펴보자 Point : 좌표 공간에서 한 지점의 위치를 표시하는 타입 -> POINT(10 10) LineString : 다수의 Point 를 연결해주는 선분 -> LINESTRING(10 10, 20 25, 15 40) Polygon : 다수의 선분들이 연결되어 닫혀 있는 상태인 다각형 -> POLYGON((10 10, 10 20, 20 20, 2..
- Total
- Today
- Yesterday
- 인덱스
- 스프링
- oauth2
- spring mvc
- java
- spring boot
- spring
- lock
- 데이터베이스
- jenkins
- Index
- 네트워크
- db
- R-Tree
- 논블로킹
- 공간쿼리
- GIS
- 비동기
- database
- DispatcherServlet
- 다운로드
- jpa
- mysql
- thread
- Spring Security
- Excel
- 쓰레드
- 영속성 컨텍스트
- github
- TCP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |