DB/일반
-
이번 시간에는 DBMS의 window function의 over 절에 대해서 살펴보자. over 절의 활용 over() 절window 함수를 사용하기 위해서는 over() 절이 필수 항목이다. sum()을 그냥 쓰면 집계함수가 되고 over()가 있어야 window 함수가 된다. 다음의 간단한 예를 살펴보자.select title, length, rating, sum(length) over() "길이합", sum(length) over(partition by rating) "등급별 길이합"from filmorder by length;첫 번째 경우 처럼 over 절이 비어있으면 모든 쿼리 행을 대상으로 구성되며 window 함수는 전체 쿼리 결과를 하나의 파티션으로 취급한다. 따라..
window function 2이번 시간에는 DBMS의 window function의 over 절에 대해서 살펴보자. over 절의 활용 over() 절window 함수를 사용하기 위해서는 over() 절이 필수 항목이다. sum()을 그냥 쓰면 집계함수가 되고 over()가 있어야 window 함수가 된다. 다음의 간단한 예를 살펴보자.select title, length, rating, sum(length) over() "길이합", sum(length) over(partition by rating) "등급별 길이합"from filmorder by length;첫 번째 경우 처럼 over 절이 비어있으면 모든 쿼리 행을 대상으로 구성되며 window 함수는 전체 쿼리 결과를 하나의 파티션으로 취급한다. 따라..
2024.09.11 -
이번 시간에는 DBMS의 window function이라는 것을 mysql 중심으로 살펴보자.https://dev.mysql.com/doc/refman/9.0/en/window-function-descriptions.html MySQL :: MySQL 9.0 Reference Manual :: 14.20.1 Window Function Descriptions14.20.1 Window Function Descriptions This section describes nonaggregate window functions that, for each row from a query, perform a calculation using rows related to that row. Most aggregate funct..
window function 1이번 시간에는 DBMS의 window function이라는 것을 mysql 중심으로 살펴보자.https://dev.mysql.com/doc/refman/9.0/en/window-function-descriptions.html MySQL :: MySQL 9.0 Reference Manual :: 14.20.1 Window Function Descriptions14.20.1 Window Function Descriptions This section describes nonaggregate window functions that, for each row from a query, perform a calculation using rows related to that row. Most aggregate funct..
2024.09.09 -
이번 포스트에서는 Spring Boot에서 단위테스트를 위한 H2 설정법에 대해 살펴보자. H2 Database 설정 h2의 모드 h2는 크게 3가지 모드로 사용할 수 있다. https://www.h2database.com/html/cheatSheet.html H2 Database Engine Using H2 Documentation Reference: SQL grammar, functions, data types, tools, API Features: fulltext search, encryption, read-only (zip/jar), CSV, auto-reconnect, triggers, user functions Embedded jdbc:h2:~/test 'test' in the user hom..
[H2] Spring Boot에서의 테스트를 위한 DB 설정이번 포스트에서는 Spring Boot에서 단위테스트를 위한 H2 설정법에 대해 살펴보자. H2 Database 설정 h2의 모드 h2는 크게 3가지 모드로 사용할 수 있다. https://www.h2database.com/html/cheatSheet.html H2 Database Engine Using H2 Documentation Reference: SQL grammar, functions, data types, tools, API Features: fulltext search, encryption, read-only (zip/jar), CSV, auto-reconnect, triggers, user functions Embedded jdbc:h2:~/test 'test' in the user hom..
2023.10.23 -
이번 포스트에서는 index를 적용하지 않았을 때, cluster index를 사용했을 때, 보조 index를 사용했을 때 성능 비교를 통해 효율적인 인덱스의 사용에 대해 고민해보자. 샘플 데이터베이스 설치 employees 스키마 설치 먼저 효율적인 테스트를 위해 많은 데이터를 포함한 데이터베이스 스키마를 설치해보자.https://dev.mysql.com/doc/employee/en/employees-installation.html MySQL :: Employees Sample Database :: 3 InstallationThe Employees database is available from Employees DB on GitHub. You can download a prepackaged ar..
[index] index 성능 확인이번 포스트에서는 index를 적용하지 않았을 때, cluster index를 사용했을 때, 보조 index를 사용했을 때 성능 비교를 통해 효율적인 인덱스의 사용에 대해 고민해보자. 샘플 데이터베이스 설치 employees 스키마 설치 먼저 효율적인 테스트를 위해 많은 데이터를 포함한 데이터베이스 스키마를 설치해보자.https://dev.mysql.com/doc/employee/en/employees-installation.html MySQL :: Employees Sample Database :: 3 InstallationThe Employees database is available from Employees DB on GitHub. You can download a prepackaged ar..
2023.10.12 -
이번 포스트에서는 Transaction Isolation level에 대해 살펴보자. 독립성과 Isolation Level Isolation Level데이터베이스에서는 lock의 경직성에서 동시성을 확보하기 위해 트랜젝션에 isolation level을 줘서 독립성과 동시성을 적절한 레벨에서 선택해서 사용할 수 있게 한다. isolation level은 동시에 여러 트랜젝션이 처리될 때 특정 T.X가 다른 T.X에서 변경중이거나 조회중인 데이터를 불 수 있게 허용할 것인가를 결정하는 수준으로 Read Uncommitted, Read Committed, Repeatable Read, Serialize 4가지가 존재한다.Read Uncommitted: 각 T.X의 commit, rollback 여부와 상관 ..
[Transaction] 02. Transaction Isolation Level이번 포스트에서는 Transaction Isolation level에 대해 살펴보자. 독립성과 Isolation Level Isolation Level데이터베이스에서는 lock의 경직성에서 동시성을 확보하기 위해 트랜젝션에 isolation level을 줘서 독립성과 동시성을 적절한 레벨에서 선택해서 사용할 수 있게 한다. isolation level은 동시에 여러 트랜젝션이 처리될 때 특정 T.X가 다른 T.X에서 변경중이거나 조회중인 데이터를 불 수 있게 허용할 것인가를 결정하는 수준으로 Read Uncommitted, Read Committed, Repeatable Read, Serialize 4가지가 존재한다.Read Uncommitted: 각 T.X의 commit, rollback 여부와 상관 ..
2023.10.11 -
이번 포스트에서는 Transaction과 동작 방식에 대해서 살펴보자. 일반적인 쿼리의 기준은 mysql로 한다. 다 아는 Transaction이야기 Transaction의 정의Transaction이란 데이터 처리의 한 단위로 개별 쿼리 단위가 아닌 사용자의 액션(업무)단위의 큰 틀로 묶어서 제어하게 된다. 트랜젝션의 목적은 데이터베이스 내의 데이터를 완전하게 유지하기 위해서 사용된다.예를 들어 A 계좌에서 B 계좌로 100원을 이체해야하는 경우를 생각해보자.이 과정에서는 2개의 update 문장이 필요하다. 즉 A 계좌에서 출금 update가 일어나고 B 계좌에서 입금 update가 일어나야 한다. 이 두 개의 sql을 하나로 묶은 것이 이체라는 업무이다.만약 A 계좌에서 성공적으로 인출한 후 무언가..
[Transaction] 01. Transaction이번 포스트에서는 Transaction과 동작 방식에 대해서 살펴보자. 일반적인 쿼리의 기준은 mysql로 한다. 다 아는 Transaction이야기 Transaction의 정의Transaction이란 데이터 처리의 한 단위로 개별 쿼리 단위가 아닌 사용자의 액션(업무)단위의 큰 틀로 묶어서 제어하게 된다. 트랜젝션의 목적은 데이터베이스 내의 데이터를 완전하게 유지하기 위해서 사용된다.예를 들어 A 계좌에서 B 계좌로 100원을 이체해야하는 경우를 생각해보자.이 과정에서는 2개의 update 문장이 필요하다. 즉 A 계좌에서 출금 update가 일어나고 B 계좌에서 입금 update가 일어나야 한다. 이 두 개의 sql을 하나로 묶은 것이 이체라는 업무이다.만약 A 계좌에서 성공적으로 인출한 후 무언가..
2023.10.10 -
이번 포스트에서는 order by 절에 사용되는 subquery의 용법에 대해 살펴보자. subquery 조회 문장을 사용할 때 subquery는 select, from, where, having, order by 절에 사용될 수 있다. 일반적인 상황에서의 sub query들은 다 써봤는데 order by 절에서 사용되는 sub query라는게 딱히 잘 사용해보지 않았던 항목이라 정리하고자 한다. order by 절에서의 subquery order by 절에는 정렬하기 위한 컬럼이 오는 것이 일반적이다. 그런데 subquery는 값을 반환한다. 뭔가 아귀가 안맞는것 같은데 subquery로 나온 값들을 기준으로 정렬 한다고 생각하면 되겠다. 이때 주의할 점은 order by 절에서 사용하는 subquer..
[subquery] order by 절에서의 sub query이번 포스트에서는 order by 절에 사용되는 subquery의 용법에 대해 살펴보자. subquery 조회 문장을 사용할 때 subquery는 select, from, where, having, order by 절에 사용될 수 있다. 일반적인 상황에서의 sub query들은 다 써봤는데 order by 절에서 사용되는 sub query라는게 딱히 잘 사용해보지 않았던 항목이라 정리하고자 한다. order by 절에서의 subquery order by 절에는 정렬하기 위한 컬럼이 오는 것이 일반적이다. 그런데 subquery는 값을 반환한다. 뭔가 아귀가 안맞는것 같은데 subquery로 나온 값들을 기준으로 정렬 한다고 생각하면 되겠다. 이때 주의할 점은 order by 절에서 사용하는 subquer..
2023.04.13 -
이번 포스트에서는 h2 데이터베이스의 설정 방법에 대해서 살펴본다. 설치 및 초기 설정 설치 다음의 링크로 이동하여 본인의 플랫폼에 적합한 버전을 다운로드 후 설치한다. H2 Database Engine H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp h2database.com ..
[h2]설정이번 포스트에서는 h2 데이터베이스의 설정 방법에 대해서 살펴본다. 설치 및 초기 설정 설치 다음의 링크로 이동하여 본인의 플랫폼에 적합한 버전을 다운로드 후 설치한다. H2 Database Engine H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp h2database.com ..
2022.11.05