Database
-
Real MySQL 트랜잭션DataBase/MySQL 2022. 4. 30. 14:27
트랜잭션 트랜잭션이란? 트랜잭션의 정의 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어 주는 것 즉 트랜잭션은 데이터의 정합성을 보장하기 위한 기능 MySQL에서의 트랜잭션 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두 개 이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 100% 적용되거나(commit을 실행했을때) 아무것도 적용되지 않아야(RollBack 또는 트랜잭션을 RollBack시키는 오류가 발생했을 때)함을 보장해주는 것 잠금 잠금은 동시성을 제어하기 위한 기능 트랜잭션 수준과 잠금의 차이 잠금은 여러 커넥션에서 동시에 동일한 자원(레코드나 테이블)을 요청한 경우 순서대로 한 시점에는 하나의 커..
-
Real MySQL 아키텍처DataBase/MySQL 2022. 3. 12. 14:25
MySQL 엔진 아키텍처 각 부분에 대한 하는 역활 커넥션 핸들러 클라이언트로부터 접속 및 쿼리 요청을 처리 MySQL 엔진 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당되는 처리 수행 스토리지 엔진 디스크 스토리지에 저장하거나 디스크 스토리지부터 데이터를 읽어오는 부분 핸들러 API MySQL 엔진에서 데이터를 읽어나 쓰거나 할 때는 각 스토리지엔진에 쓰기 또는 읽기를 요청을 하는데 이러한 요청을 핸들러(handler)요청이라 한다. 여기서 사용되는 API를 핸들러 API MySQL 스레딩 구조 스레딩 구조 설명 MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동 포그라운드 스레드나 백그라운드 스레드로 구분 동일한 이름의 스레드가 2개 이상 보이는 것은 MySQL 서버의 설정..
-
H2 -테스트 DB Sequnce 정책개발 오류 및 해결 방안 2020. 10. 22. 18:15
JPA를 공부를 하면서 H2 DataBase를 처음 사용해 보았다.. JPA울 이용한 sequnce 설정은 아래와같이 하였다. 그런데 아래와같이 이가빠진듯 중간 sequnce번호가 날라가는 것이었다 !! 10월 22일 아침 11시부터 저녁 6시까지 원인을 찾기위해, 디버깅을 하면서 보았다. 원인은..( 카카오톡 오픈채팅방에서 도움을 받음.. ) H2 DB는 sequnce 가 하나로 돌려쓴다는 것이었다.... 하.. 이런 간단한것도 몰라서 화가났다.. 디버깅을 깊게 들어갔는데도 다음번호가 나와서 이상하다 싶었는데... H2는 시퀀스를 공통으로 돌려쓰는거였다니... 오늘도 나의 시간을 바꿔 새로운 지식 득.. ㅜㅜ