본문 바로가기

database32

spring boot + jpa 환경에서 h2 접속할려는데 file 위치를 못찾는 현상 상황 spring boot + jpa 환경에서 h2 접속할려는데 file 위치를 못찾는 현상 Database "xxx/test" not found, and IFEXISTS=true, so we cant auto-create it 해결방안 spring boot + jpa 환경에서 h2 에 접속하기 전 아래와 같이 tcp 로 붙을려면 미리 데이터베이스를 만들어놔야 함. jdbc:h2:tcp://localhost/~/test 그렇기에 h2 console 환경에서 위 url 을 한 번 접속해주면 데이터베이스 생성되고, 그 이후에는 접속이 잘됨. Reference http://www.h2database.com/html/tutorial.html#creating_new_databases 2020. 12. 21.
Index 란? (클러스터드, 넌 클러스터드 설명) Index 란? 데이터를 검색할 때, 모든 데이터를 순차 검색하기에는 시간이 너무 오래 걸림. 그렇기에 메모리를 사용해 검색 속도를 빠르게 하기 위한 기법이다. B+tree 알고리즘을 사용하며, Hash 알고리즘을 안쓰는 이유는 '' 비교가 안되기 때문이다. 클러스터드 인덱스 순서대로 행을 재배열 PK 를 설정하면 자동으로 클러스터드 인덱스로 설정이 됨. 예를 들면, ID, 거래일 이 PK 이면, 2020-01-01, 2019-12-31 순으로 데이터를 넣으면 물리적으로 날짜를 정렬한 후 저장이 돼있음. 2019-12-31, 2020-01-01 순으로. 1개만 만들 수 있음. PK 에 따라 데이터 저장 위치가 결정되니 조회시에는 빠르겠지만, 수정, 삭제, 삽입은 느리겠지. PK 에 따라 다.. 2020. 11. 15.
Sql 과 nosql 차이점 그리고 언제 써야하는지 Sql 과 nosql 차이점 그리고 언제 써야하는지 Sql : 관계형 데이터베이스 정해진 데이터 스키마를 따라 테이블에 저장 테이블 간의 관계를 통해 원하는 데이터를 뽑아낸다. 데이터가 수직적 확장만 지원 (성능). 데이터 구조 때문에 데이터 무결성 보장. Nosql : 비관계형 데이터베이스 스키마 없고. 즉, 이 말은 서로 관계 없는 데이터 구조를 같은 컬렉션(테이블) 에 저장할 수 있음. 관계 없음. 조인 없음. 동일한 데이터가 들어갈 수 있기에 자주 변하지 않는 데이터를 저장할 때 좋음. 여러 서버에 데이터 확장이 가능 (수평적) 자주 안바뀌는 데이터를 저장하기에 좋겠지. 2020. 11. 14.
oracle b+tree 설명 oracle b+tree 설명 Oracle 의 인덱스 구조에서 b+tree 알고리즘을 사용. 이진 트리 알고리즘과 비슷하고. 검색에 특화. 이진트리는 logn 에 검색이 가능. 단점은 데이터를 넣거나 업데이트 할 때, 시간이 오래 걸릴 수 있다는 거지. (이진 트리의 단점) 분포도가 낮으면 b+tree 는 안좋음. 여기서 말하는 분포도라는 것은 고유 값 (구별할 수 있는 값) 이 얼마나 많은지에 대해서 설명 분포도 분포도는 데이터의 고유 값의 범위를 나타내는 것이고. 분포도가 높을 수록 고유 값이 다양하다는 것이다. 이런 것들은 인덱스를 만들었을 때 효율이 좋은 것이고. 왜냐면 인덱스에서 키로 데이터를 나누어서 저장하기에 고유 데이터가 많을수록 좋은 것이지. 만약 고유키가 대부분 비슷하다고 가정을 해보자.. 2020. 11. 10.