일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다중DB
- 자바
- 코테
- sql
- java
- Object-oriented
- 660mbt
- @value
- 레오폴드
- 줄바꿈
- 개발환경
- spring boot
- 개햄문자치환
- spring
- 직렬화
- 업로드 파일 용량
- 개행문자
- value 어노테이션
- springframework
- application.properties
- vue.js
- 쿼리
- Spring Framework
- springboot
- mysql
- Serializable
- query
- 롤백
- Docker
- 트랜잭션
- Today
- Total
목록Study/DB (5)
supremest.35 개발 블로그
트랜잭션이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 은행으로 예를 들면, 입금 : 돈을 계좌에 넣는 행위 출금 : 돈을 계좌에서 빼는 행위 입금이나 출금의 경우 더이상 쪼갤 수 없는 업무의 단위. 그렇다면, 계좌이체는? A 계좌에서 출금 B 계좌로 입금 '계좌이체'라는 업무는 출금과 입금으로 묶인 하나의 작업 단위 즉, 더이상 쪼갤 수 없으며, 출금 또는 입금에 문제가 발생할 경우 해당 작업은 더이상 '계좌이체'라는 작업이 아니다.
운영중인 서비스를 중단 후 작업해야하는 경우, 데이터의 유입량이 적은 시기에 작업을 하는 편이 좋다. 그러기 위해선 데이터 유입량을 시간대별로 통계를 내야할 경우가 생긴다. MySQL에서 hour()함수는 시간을 알려준다. 데이터가 유입된 시간을 hour()함수에 넣고 각 시간대별 데이터 유입량을 통계낸다. SELECT hour(visitedTime) hh, count(visitedTime) as cnt FROM customer GROUP BY hh ORDER BY hh asc
오라클에서 SELECT 시에 개수 제한을 두기 위해서 ROWNUM 또는 ROW_NUMBER 함수를 사용했다. 위의 두 함수중 하나를 사용하여 조회된 데이터의 순번을 매기고 WHERE절을 통해 원하는 범위에 속하는 데이터만 조회할 수 있었다. MySQL에서는 위의 함수들이 존재하지 않고 LIMIT라는 키워드를 사용해서 조회된 데이터의 개수를 제한할 수 있다. SELECT name, age, phone, adress FROM person LIMIT 10; SELECT name, age, phone, adress FROM person LIMIT 0 10; SELECT name, age, phone, adress FROM person LIMIT 10 10; 첫번째 쿼리처럼 하나의 수를 정해서 사용하면 처음 데이..